Buduję rozszerzenia Joomla od wersji 1, ale wkrótce muszę uruchomić interfejs API na żywo, który zbudowałem i używam od dłuższego czasu. Obecnie używam Joomla 2.5 i napisałem wtyczki dla tego systemu:
https://github.com/techjoomla/com_api
Przed uruchomieniem chciałbym w jak największym stopniu udoskonalić system. Ten komponent API dopiero niedawno zaczął być aktualizowany do pracy z Joomla v3, więc obecnie uniemożliwia aktualizację strony. Myślę też, że oddzielenie publicznego interfejsu API od portalu użytkownika ma sens, ponieważ nie ma korzyści z tego, że jest to zintegrowane rozszerzenie, ponieważ API będzie używane przez aplikacje mobilne.
Obecny plan obejmuje przebudowę interfejsu API w subdomenie, co pozwoli nam zaktualizować portal użytkowników. Czytałem o nowym frameworku Joomla, który wygląda ekscytująco. Czy byłoby to odpowiednie do budowy interfejsu API RESTful dla naszych aplikacji mobilnych? Jeśli tak, czy są to wskazówki, jak zacząć? Czytałem, że FoF można wykorzystać do budowy API, czy byłby to dobry wybór? Widziałem projekt Kickstarter zamierzający zbudować właśnie taki interfejs API, czy to potencjalna opcja? Czy powinienem po prostu usunąć bieżącą witrynę 2.5 dla subdomeny, aby działała tylko funkcja API?
Wszelkie sugestie dotyczące najlepszego podejścia do budowy opartego na Joomla RESTful API do interakcji mobilnych będą mile widziane.
Odpowiedzi:
Z mojego doświadczenia:
O frameworku Joomla
Próbowałem zbudować prosty interfejs API RESTful do zintegrowanego uwierzytelniania opartego na frameworku Joomla. Jest dość złożony, zupełnie inny niż obecny interfejs API Joomla. Nie można też wkleić bieżącego kodu źródłowego, a biblioteki mogą zwracać nieoczekiwane wyniki (wykonywane w innym środowisku). Zaczekam, aż będzie dostępny więcej kodu i będzie on miał większą adaptację.
O środowisku FOF
Obecnie rozwijam się tylko z FOF. Całkiem przydatne, dużo RAD, automatyczna konfiguracja itp .; a kod jest zgodny z J2.5 / J3.
W przypadku interfejsu API RESTful możesz po prostu pobrać przykład todo-fof i dodać kontroler z interfejsem API. Przykład:
Możesz także skorzystać z automatycznych widoków Json. Np. Widok przeglądania (default.php) może generować dane wyjściowe Json (tylko dodawanie
default_json.php
iecho json_encode
...)źródło
com_api jest zdecydowanie dobrym sposobem na zbudowanie usług REST dla Twojej witryny, jeśli samo rozszerzenie nie jest oparte na FOF / RAD. Uważaj jednak na kilka gotchas, jeśli planujesz utworzyć osobną instancję Joomla tylko dla API
Poza tym jestem pewien, że nie powinno być żadnych problemów, ponieważ będą one nadal rozwijane, dopóki nie będzie de facto sposób tworzenia interfejsów API w Joomla.
Oświadczenie: Jestem opiekunem https://github.com/techjoomla/com_api
źródło
Moje dwa centy:
Dla klienta musiałem uzyskać dostęp do zawartości jego strony Joomla z aplikacji na smartfona. Zawartość została umieszczona w com_content, więc początkowo korzystałem z kanałów obRSS. Potem znalazłem jBackend na JED i wypróbowałem. Jest dostępny tutaj http://www.selfget.com/products/jbackend.html Kod wydaje się bardzo czysty i obsługuje żądania RESTful i odpowiedzi JSON. Dokumentacja online jest ograniczona, ale wystarczająco jasna dla techników. Niestety w tej chwili obsługuje tylko com_user i com_content, ale w moim przypadku było w porządku. Teraz powinienem użyć go dla innego klienta, który używa K2 CCK. Próbuję zbudować niestandardową wtyczkę, aby uzyskać dostęp do artykułów i kategorii K2, ale przynajmniej zachowam cały kod zarządzania żądaniami. Wysłałem e-mail do programisty, który powiedział mi, że pracuje także nad dodatkowymi modułami, takimi jak K2 i forum Kunena, jest to bardzo obiecujące rozszerzenie.
źródło
Następująca witryna wydaje się być doskonałym źródłem wskazówek dotyczących tworzenia interfejsu API RESTful JSON:
http://jsonapi.org/
Za to, co jest warte, uruchamiam również produkt API dla Joomla 3.4.x o nazwie cAPI http://getcapi.org .
Podstawowym wyróżnikiem jest to, że postawiłem swoją strukturę routingu na mikrostrukturę Slim. To pozwala mi na włączenie sprawdzonej już, solidnej struktury do instancji aplikacji Joomla. Stworzyłem również architekturę wtyczek dla tras usług, otwierając drzwi dla dodatków i bezpieczeństwa usług internetowych.
Możesz znaleźć dodatkowe informacje z innych postów tutaj:
/programming/26340885/rest-api-for-joomla-3-0/32706378#32706378
Daj mi znać, jeśli masz jakieś pytania.
źródło