web-dev-qa-db-fra.com

Création d'une API pour une extension Joomla

Je dois créer une API pour qu'un client externe puisse effectuer des actions sur la table de base de données de mes extensions personnalisées.

Quelle serait la bonne approche?

  1. Devrais-je utiliser https://api.joomla.org/cms-3/ pour cela? Comment?! Je n'ai trouvé aucun exemple.
  2. Placer l'API dans un répertoire séparé (par exemple/api /) et inclure le framework Joomla dans mon php?
  3. Ou créer une extension MVC, par exemple com_myapi?
  4. Devrais-je utiliser REST ou toute autre méthode?
  5. Est-ce que com_api serait un bon début? ( https://github.com/techjoomla/com_api ) Vous n'avez pas trouvé de documentation cependant…

Le client externe doit pouvoir:

PUT - Modifier un objet existant sur le serveur
POST - Créer un nouvel objet sur le serveur
DELETE - Supprime un objet sur le serveur

Je devrais alors retourner une réponse (ok, ou une erreur spécifique). JSON?

OU…. Suis-je en train de négliger une autre solution évidente?

Toute suggestion est la bienvenue!

5

Il y a quelques options, mais j'utilise l'extension jBackend.

Quelques points positifs de jBackend.

  • JSON propre et sympa
  • Livré avec un bon code standard pour commencer
  • Gère les clés de l'API Le code de point de terminaison de l'API transmet et reçoit des données
  • Exposé de nombreuses fonctions CMS courantes en tant que points de terminaison de l'API
  • Possède une interface utilisateur administrative Joomla d'aspect normal pour la gestion des clés d'API
  • La documentation est bonne
  • Le code est bien structuré et facile à lire

Cela fait un moment que nous l'utilisons, Joomla peut donc être un backend pour applications mobiles. J’ai fait un exposé à ce sujet à J & Beyond la semaine dernière, que vous pouvez trouver à http://jandbeyond.org/programme.html?view=session&id=45&return=L3Byb2dyYW1tZS5odG1s

Pour plus d'informations sur jBackend, consultez http://www.selfget.com/products/jbackend.html . Je pense qu'il y a aussi une extension RedComponent qui fait la même chose.

À J & Beyond, j’ai assisté à l’exposé de Chris Davenport sur Joomla 3.6 et au-delà, qui contenait de très bons détails sur les fonctionnalités de Joomla relatives à l’API qui pourraient arriver dans 3.6 - http://jandbeyond.org/programme.html ? view = session & id = 74 & return = L3Byb2dyYW1tZS5odG1s

9
AndyGaskell

Si vous avez besoin de clean REST urls comme: [GET] api/articles/1

Vous pouvez consulter mon projet: https://github.com/pvullioud/japi

ou si vous ne voulez pas utiliser de plugins, vous avez un exemple plus simple ici https://github.com/pvullioud/joomla-slimframework