it-swarm.com.de

So erstellen Sie eine RESTful-API mit Joomla

Ich habe Joomla-Erweiterungen seit Version 1 erstellt, aber ich muss bald eine API in Betrieb nehmen, die ich erstellt habe und seit einiger Zeit verwende. Derzeit benutze ich Joomla 2.5 und habe Plugins für dieses System geschrieben:

https://github.com/techjoomla/com_api

Bevor ich live gehe, möchte ich das System so weit wie möglich zukunftssicher machen. Diese API-Komponente wurde erst vor kurzem für die Arbeit mit Joomla v3 aktualisiert, sodass die Website derzeit nicht aktualisiert werden kann. Ich halte es auch für sinnvoll, die öffentliche API und das Benutzerportal zu trennen, da es keinen Nutzen bringt, wenn es sich um eine integrierte Erweiterung handelt, da die API von mobilen Apps verwendet wird.

Derzeit ist geplant, die API in einer Unterdomäne neu zu erstellen, damit wir das Benutzerportal aktualisieren können. Ich habe über das neue Joomla-Framework gelesen, das aufregend aussieht. Wäre dies geeignet, um eine RESTful-API für unsere mobilen Apps zu erstellen? Wenn ja, sind sie Tipps für den Einstieg? Ich habe gelesen, dass FoF zum Erstellen einer API verwendet werden kann. Wäre dies eine gute Wahl? Ich habe gesehen, dass das Kickstarter-Projekt genau diese Art von API entwickeln will. Ist das eine mögliche Option? Sollte ich nur die aktuelle 2.5-Site für die Subdomain entfernen, damit nur die API ausgeführt wird?

Vorschläge zum besten Ansatz für die Erstellung einer Joomla-basierten RESTful-API für die mobile Interaktion werden sehr geschätzt.

11
Joe P

Meiner Erfahrung nach:

Über Joomla Framework

Ich habe versucht, eine einfache RESTful-API für die integrierte Authentifizierung auf Basis des Joomla-Frameworks zu erstellen. Es ist ziemlich komplex, ganz anders als die aktuelle Joomla-API. Außerdem kann der aktuelle Quellcode nicht kopiert werden, und Bibliotheken können unerwartete Ergebnisse zurückgeben (die in einer anderen Umgebung ausgeführt werden). Ich werde warten, bis mehr Code verfügbar ist und er eine größere Akzeptanz hat.

Über FOF Framework

Ich entwickle derzeit nur mit FOF. Sehr praktisch, viel RAD, automatische Konfiguration usw .; und Code ist kompatibel mit J2.5/J3.

Für eine RESTful-API können Sie einfach das Beispiel todo-fof abrufen und einen Controller mit der API hinzufügen. Beispiel:

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();

}

Sie können auch automatische JSON-Ansichten nutzen, z. Eine Browsing-Ansicht (default.php) kann eine JSON-Ausgabe generieren (indem Sie einfach default_json.php und echo json_encode ...)

8
Anibal

com_api ist definitiv ein guter Weg, um REST= Dienste für Ihre Site zu erstellen, wenn die Erweiterung selbst nicht auf FOF/RAD basiert. Seien Sie jedoch vorsichtig, wenn Sie vorhaben, eine separate Joomla-Instanz zu erstellen nur für die API

  • Domänenspezifisches Material (z. B. Wenn Sie die Benutzerregistrierung unterstützen, enthält die Begrüßungs-E-Mail einen Link zur API-Unterdomäne). Dies könnte durch Herumspielen mit der Servervariablen PHP) gemildert werden.
  • Ebenso müssen Bildpfade usw. korrekt sein, es sei denn, Sie verwenden S3

Abgesehen davon sollte es sicher keine Probleme geben, da dies so lange weiterentwickelt wird, bis es eine De-facto-Joomla-Methode zum Erstellen von APIs gibt.

Haftungsausschluss: Ich bin der Betreuer von https://github.com/techjoomla/com_api

6
Ashwin Date

Meine zwei Cent:

Für einen Kunden musste ich über eine Smartphone-App auf die Inhalte seiner Joomla-Site zugreifen. Die Inhalte wurden in com_content abgelegt, daher habe ich anfangs obRSS-Feeds verwendet. Dann habe ich jBackend auf JED gefunden und es ausprobiert. Es ist hier verfügbar http://www.selfget.com/products/jbackend.html Der Code scheint sehr sauber zu sein und unterstützt RESTful-Anforderungen und JSON-Antworten. Die Online-Dokumentation ist begrenzt, aber für Techniker klar genug. Leider unterstützt es im Moment nur com_user und com_content, aber in meinem Fall war das in Ordnung. Jetzt sollte ich es für einen anderen Kunden verwenden, der K2 CCK verwendet. Ich versuche, ein benutzerdefiniertes Plugin für den Zugriff auf K2-Artikel und -Kategorien zu erstellen, speichere jedoch mindestens den gesamten Code für die Anforderungsverwaltung. Ich habe dem Entwickler eine E-Mail geschickt und er hat mir gesagt, dass er an zusätzlichen Modulen wie K2 und dem Kunena-Forum arbeitet. Diese Erweiterung ist sehr vielversprechend.

1
WizKid

Die folgende Site scheint eine hervorragende Ressource für Richtlinien zum Erstellen einer RESTful JSON-API zu sein:

http://jsonapi.org/

Für das, was es wert ist, starte ich auch ein API-Produkt für Joomla 3.4.x mit dem Namen cAPI http://getcapi.org .

Das Hauptunterscheidungsmerkmal hierbei ist, dass ich mein Routing-Framework auf ein Slim-Micro-Framework gesetzt habe. Dadurch kann ich ein bereits erprobtes, robustes Framework in die Joomla-Anwendungsinstanz einbinden. Ich habe auch eine Plugin-Architektur für die Servicerouten erstellt, die die Tür für Add-Ons und Webservicesicherheit öffnet.

Weitere Informationen aus anderen Beiträgen finden Sie hier:

https://stackoverflow.com/questions/26340885/rest-api-for-joomla-3-0/32706378#32706378

Lassen Sie mich wissen, wenn Sie Fragen haben.

1
Steve Tsiopanos