web-dev-qa-db-fra.com

Quel est le meilleur moyen de créer des services Web REST / SOAP / JSON pour Joomla?

Si je dois créer Web Services (REST/SOAP APIs) pour le site Web basé sur Joomla. MySQL DataBase fonctionne avec le site Web Joomla et je voulais créer des applications mobiles pour cela.

En utilisant la même base de données, comment puis-je créer des services Web Rest/Soap? Donc, si j'écris un article sur le site Joomla, il s'affichera également dans l'application mobile.

J'ai quelques questions sur ce sujet

  1. Devrais-je utiliser un cadre tel que Slim Framework ou un autre cadre? (Je sais que ce n'est pas une bonne idée car Joomla utilise également un framework)
  2. Comment je peux le sécuriser?

  3. Comment augmenter la performance?

Merci d'avance.

3
Joomler

Créez un nouveau fichier php (webapi.php) et enregistrez-le à la racine de votre site.

Ajoutez les fichiers requis pour accéder au framework Joomla de la manière suivante:

//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');

L'utilisation de Joomla Framework vous permet d'accéder à tout ce qui se trouve déjà dans votre base de données. Vous n'avez donc pas besoin d'un framework externe pour faire ce que Joomla a déjà été construit.

Pour le cryptage:

Demandez à votre application mobile de transmettre une clé secrète et toute autre demande de données à utiliser pour interroger votre base de données.

Écrivez une validation simple qui vérifiera votre clé secrète par rapport à votre site. Ou d'ailleurs, utilisez la clé secrète de votre fichier de configuration si vous le vouliez, même si je ne le recommande pas. Vous pouvez base64_encode saisir la fin de l’application mobile, puis la décoder de nouveau. Ou mieux encore, hachez la clé sur les applications mobiles en utilisant une clé secrète, la vérification de la valeur du hachage contre votre clé privée côté serveur.

3
Terry Carter

Vous pouvez utiliser com_ajax

Jetez un oeil à ceci: https://docs.joomla.org/Using_Joomla_Ajax_Interface

et aussi et exemple ici: https://github.com/Joomla-Ajax-Interface/Ajax-Latest-Articles

0
Piero Marsilio