Service très chargé. Savon vs repos

8

J'ai la tâche de créer une API pour Magento en utilisant son implémentation SOAP ou REST.

J'ai beaucoup lu sur les deux services, j'ai également de l'expérience avec eux. Mais pas dedans high-loaded projects.

La tâche de ce service fournira des informations supplémentaires au client via SOAP ou REST. J'ai configuré les deux et tout va bien.

MAIS, la question est ce qui serait mieux si j'avais 100 clients appelant mon service par seconde, 200, 500 et ainsi de suite?

Je connais les frais généraux de SOAP, mais aussi si j'utilise REST, je dois également utiliser oAuth, alors qu'est-ce qui tombera en premier?

Une expérience à ce sujet?

sergio
la source

Réponses:

11

Vous devrez définir un cas d'utilisation clair pour obtenir une réponse spécifique à votre question. À moins que nous ayons un cas d'utilisation détaillé ici, je voudrais répondre avec des conseils généraux à ce sujet:

SOAP vs REST SOAP et REST sont deux façons d'accéder aux services Web. SOAP utilise XML pour ses requêtes. REST repose sur des requêtes HTTP via URL et est donc vraiment léger par rapport à SOAP.

(Dis-) Avantages de SOAP:

  • service Web bien défini
  • a des normes prédéfinies (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • fonctionne bien dans les environnements d'entreprise (en raison des normes)
  • certains outils peuvent être automatisés à l'aide du WSDL
  • poids lourd par rapport à REST

(Dis-) Avantages de REST:

  • plus facile à utiliser
  • plus flexible
  • courbe d'apprentissage plus petite
  • efficace / léger par rapport à SOAP
  • pas de structure de service Web définie (pas de WSDL)

API SOAP de Magento vs API REST

Sachez que toutes les fonctionnalités ne sont pas implémentées pour l'API REST.

J'ai créé un petit script de test de performance qui ne fait rien de plus que des demandes de connexion et de fin de session 10 x 10 via l'API SOAP v1. Aucune action spécifique n'a été effectuée. 1 demande a pris entre 0,9 et 1,4 seconde avec mon serveur Web local.

Pour comparer avec le reste: une fois que votre application est autorisée (où vous devez autoriser votre application une fois en cliquant sur "autoriser"), il ne faut que quelques millisecondes pour être prêt à exécuter votre demande après avoir obtenu un jeton et un secret: 2.0 -3,0 * 10 ^ -5 secondes localement.

Test de performance

Pour effectuer un test de performance qui pourrait enfin répondre à votre question, vous devez définir les exigences.

Les éléments suivants seraient intéressants:

  • Se connectent-ils une fois et effectuent-ils plusieurs actions ou chacun se connecte-t-il pour une seule action?
  • Quel genre de demandes effectuent-ils? Ajouter / mettre à jour des produits, passer des commandes, ...?
  • SOAP API v1, SOAP API v2 ou SOAP v2 WSI vs REST?

Ressources

Cela pourrait aussi être intéressant pour vous:

Anna Völkl
la source
1
Très bonne réponse! J'ai aussi fait un test, et j'ai environ ~ 0.4s pour faire seulement oAuth et appeler une méthode qui ne fait rien, juste pour tester. Donc, les frais généraux sont importants, j'ai écrit le service REST dans un autre cadre, mais j'utilise Magento Db pour manipuler les données. merci
sergio