V1'den beri Joomla uzantıları oluşturuyorum, ancak yakında oluşturduğum ve bir süredir kullandığım bir API'yi canlı olarak almam gerekiyor. Şu anda Joomla 2.5 kullanıyorum ve bu sistem için eklentiler yazdım:
Yayına geçmeden önce sistemi olabildiğince kanıtlamak istiyorum. Bu API bileşeni, Joomla v3 ile çalışacak şekilde yeni yükseltilmeye başlandı, bu nedenle sitenin yükseltilmesini engelliyor. Ayrıca, API'nin mobil uygulamalar tarafından kullanılacağı için entegre bir uzantı olmasının hiçbir faydası olmadığından, genel API ve kullanıcı portalını ayırmanın mantıklı olduğunu düşünüyorum.
Mevcut plan, kullanıcı portalını yükseltmemize izin verecek bir alt alanda API'yi yeniden oluşturmaktır. Heyecan verici görünen yeni Joomla çerçevesini okudum. Bu, mobil uygulamalarımız için RESTful API oluşturmak için uygun olur mu? Eğer öyleyse, başlamak için ipuçları var mı? FoF'ın bir API oluşturmak için kullanılabileceğini okudum, bu iyi bir seçim olur mu? Kickstarter projesinin tam olarak bu tür bir API oluşturmak istediğini gördüm, bu potansiyel bir seçenek mi? Sadece API'yı çalıştıracak şekilde alt alan için geçerli 2.5 sitesini geri almalı mıyım?
Mobil etkileşim için Joomla tabanlı bir RESTful API oluşturmaya yönelik en iyi yaklaşımla ilgili öneriler çok takdir edilecektir.
Deneyimlerimden:
Joomla çerçevesi hakkında
Joomla çerçevesine dayalı entegre kimlik doğrulaması için basit bir RESTful API oluşturmaya çalıştım. Oldukça karmaşık, mevcut Joomla API'sinden oldukça farklı. Ayrıca, geçerli kaynak kodu kopyalanamaz ve kitaplıklar beklenmedik sonuçlar döndürebilir (farklı bir ortamda yürütülür). Ben daha fazla kod kullanılabilir olana kadar bekleyeceğim, ve daha büyük benimseme vardır.
FOF çerçevesi hakkında
Şu anda sadece FOF ile gelişiyorum. Oldukça kullanışlı, çok sayıda RAD, otomatik yapılandırma, vb; ve kod J2.5/J3 ile uyumludur.
RESTful API için, todo-fof örneğini alabilir ve API ile bir denetleyici ekleyebilirsiniz. Misal:
public function getIndexStatus() { // CSRF prevention if ($this->csrfProtection) { $this->_csrfProtection(); } $message['status'] = true; $message['error_message'] = 'Status Ok'; $message = json_encode($message); echo $message; flush(); JFactory::getApplication()->close(); }
Ayrıca, otomatik json görünümlerinden yararlanabilirsiniz. bir tarama görünümü (default.php) json çıktısı oluşturabilir (sadece
default_json.php ve
echo json_encode ...)
com_api, uzantının kendisi FOF/RAD tabanlı değilse, siteniz için REST hizmetler oluşturmak için kesinlikle iyi bir yoldur.Ancak ayrı bir Joomla örneği oluşturmayı planlıyorsanız birkaç sorka dikkat edin sadece API için
Bunun dışında herhangi bir sorun olmaması gerektiğine eminim, çünkü API'ları oluşturmanın fiili bir Joomla yolu olana kadar geliştirilmeye devam edecek.
Yasal Uyarı: Ben https://github.com/techjoomla/com_api
Benim görüşüm:
Bir müşteri için joomla sitesinin içeriğine bir akıllı telefon uygulamasından erişmem gerekiyordu. İçerik com_content içine yerleştirildi, bu yüzden başlangıçta obRSS yayınları kullandım. Sonra JBackend'i JED'de buldum ve denedim. Burada bulunabilir http://www.selfget.com/products/jbackend.html Kod çok temiz görünüyor ve RESTful istekleri ve JSON yanıtlarını destekliyor. Çevrimiçi dokümantasyon sınırlı ancak teknisyenler için yeterince açık. Ne yazık ki şu anda sadece com_user ve com_content destekler ama benim durumumda bu iyiydi. Şimdi K2 CCK kullanan başka bir müşteri için kullanmalıyım. K2 makalelerine ve kategorilerine erişmek için özel bir eklenti oluşturmaya çalışıyorum, ancak en azından tüm istek yönetimi kodunu kaydedeceğim. Geliştiriciye bir e-posta gönderdim ve bana K2 ve Kunena forumu gibi ek modüller üzerinde çalıştığını söyledi, çok umut verici bir uzantı.
Aşağıdaki site, RESTful JSON API'sinin nasıl oluşturulacağına ilişkin yönergeler için mükemmel bir kaynak gibi görünüyor:
Değeri ne olursa olsun, Joomla 3.4.x için cAPI http://getcapi.org adlı bir API ürünü de piyasaya sürüyorum.
Buradaki birincil farklılaştırıcı, yönlendirme çerçevemi İnce mikro çerçeve üzerine yerleştirdiğimdir. Bu, zaten denenmiş ve test edilmiş sağlam bir çerçeveyi Joomla uygulama örneğine dahil etmeme izin veriyor. Eklentiler ve web hizmetleri güvenliği için kapıyı açarak servis yolları için bir eklenti mimarisi oluşturdum.
Diğer yayınlardaki ek bilgileri burada bulabilirsiniz:
Herhangi bir sorunuz varsa bize bildirin.