it-swarm.com.de

Wie erstelle ich REST / SOAP / JSON-Webdienste für Joomla am besten?

Wenn ich Web Services (REST/SOAP APIs) für eine Joomla-basierte Website erstellen muss. Ich habe MySQL DataBase mit Joomla-Website ausgeführt und wollte dafür mobile Apps erstellen.

Wie kann ich mit derselben Datenbank Rest/Soap-Webdienste erstellen? Wenn ich also einen Artikel auf der Joomla-Site schreibe, wird er auch in der mobilen App angezeigt.

Ich habe einige Fragen zu diesem Thema

  1. Soll ich dafür ein Framework wie Slim Framework oder ein anderes Framework verwenden? (Ich weiß, das ist keine gute Idee, weil Joomla auch ein Framework ausführt.)
  2. Wie kann ich es sichern?

  3. Wie kann die Leistung gesteigert werden?

Danke im Voraus.

3
Joomler

Erstellen Sie eine neue PHP-Datei (webapi.php) und speichern Sie sie im Stammverzeichnis Ihrer Website.

Fügen Sie die erforderlichen Dateien wie folgt hinzu, um auf das Joomla Framework zuzugreifen:

//ALLOW DIRECT ACCESS
define('_JEXEC', 1);

require_once $_SERVER['DOCUMENT_ROOT'].'/includes/defines.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/includes/framework.php';

$app = JFactory::getApplication('site');
$app->initialise();

$JInput = JFactory::getApplication()->input;
$secretKey = $JInput->get('secretKey','','string');
$request_data = $JInput->get('request','','array');

Mit dem Joomla Framework können Sie auf alles zugreifen, was sich bereits in Ihrer Datenbank befindet, ohne dass ein externes Framework erforderlich ist, um das zu tun, wofür Joomla bereits erstellt wurde.

Zur Verschlüsselung:

Lassen Sie Ihre mobile App einen geheimen Schlüssel und alle anderen Anforderungsdaten übergeben, mit denen Sie Ihre Datenbank abfragen möchten.

Schreiben Sie eine einfache Validierung, die Ihren geheimen Schlüssel mit Ihrer Site vergleicht. Oder verwende in diesem Fall den geheimen Schlüssel in deiner Konfigurationsdatei, wenn du möchtest, obwohl ich das nicht empfehle. Sie können base64_encode, den sie auf dem Ende der mobilen Apps eingeben, und dann wieder auf Ihrem Ende dekodieren. Oder noch besser, HASH den Schlüssel auf den mobilen Apps mit einem geheimen Schlüssel, der den Wert des Hashs mit Ihrem privaten Schlüssel auf der Serverseite vergleicht.

3
Terry Carter

Sie können com_ajax verwenden

Schauen Sie sich das an: https://docs.joomla.org/Using_Joomla_Ajax_Interface

und auch und Beispiel hier: https://github.com/Joomla-Ajax-Interface/Ajax-Latest-Articles

0
Piero Marsilio