Hoch geladener Service. Seife gegen Ruhe


8

Ich habe die Aufgabe, eine API für Magento mithilfe der SOAP- oder REST-Implementierung zu erstellen.

Ich habe viel über beide Dienste gelesen und auch Erfahrung mit ihnen. Aber nicht in high-loaded projects.

Die Aufgabe dieses Dienstes gibt dem Client einige zusätzliche Informationen über SOAP oder REST. Ich habe beide konfiguriert und alles ist in Ordnung.

ABER die Frage ist, was wäre besser, wenn 100 Kunden meinen Service pro Sekunde anrufen, 200, 500 und so weiter?

Ich weiß über SOAP-Overhead Bescheid, aber auch wenn ich REST verwende, muss ich auch oAuth verwenden. Was fällt also zuerst herunter?

Irgendwelche Erfahrungen damit?

Antworten:


11

Sie müssen einen klaren Anwendungsfall definieren, um eine spezifische Antwort auf Ihre Frage zu erhalten. Sofern wir hier keinen detaillierten Anwendungsfall haben, möchte ich mit allgemeinen Ratschlägen antworten:

SOAP vs REST SOAP und REST sind zwei Möglichkeiten, auf Webdienste zuzugreifen. SOAP verwendet XML für seine Anforderungen. REST basiert auf HTTP-Anforderungen über URL und ist daher im Vergleich zu SOAP sehr leicht.

(Dis-) Vorteile von SOAP:

  • gut definierter Web-Service
  • hat vorgefertigte Standards (SOAPv1, SOAPv2, SOAPv2 WS-I)
  • funktioniert gut in Unternehmensumgebungen (aufgrund von Standards)
  • Einige Tools können mithilfe der WSDL automatisiert werden
  • Schwergewicht im Vergleich zu REST

(Dis-) Vorteile von REST:

  • einfacher zu bedienen
  • flexibler
  • kleinere Lernkurve
  • Effizient / leicht im Vergleich zu SOAP
  • keine definierte Web-Service-Struktur (keine WSDL)

Magento SOAP API vs REST API

Beachten Sie, dass nicht alle Funktionen für die REST-API implementiert sind.

Ich habe ein kleines Leistungstestskript erstellt, das nur 10x10-Anmelde- und EndSession-Anforderungen über die SOAP-API v1 ausführt. Es wurde keine spezifische Aktion durchgeführt. 1 Anfrage dauerte zwischen 0,9 und 1,4 Sekunden mit meinem lokalen Webserver.

Vergleich mit Ruhe: Sobald Ihre Anwendung autorisiert ist (wo Sie Ihre Anwendung einmal durch Klicken auf "Autorisieren" autorisieren müssen), dauert es nur wenige Millisekunden, bis Sie bereit sind, Ihre Anfrage auszuführen, nachdem Sie ein Token und ein Geheimnis erhalten haben: 2.0 -3,0 * 10 ^ -5 Sekunden lokal.

Leistungstest

Um einen Leistungstest durchzuführen, der Ihre Frage endgültig beantworten kann, müssen Sie die Anforderungen definieren.

Folgendes wäre interessant:

  • Melden sie sich einmal an und führen mehrere Aktionen aus oder meldet sich jeder von ihnen nur für eine Aktion an?
  • Welche Art von Anfragen führen sie aus? Produkte hinzufügen / aktualisieren, Bestellungen aufgeben, ...?
  • SOAP API v1, SOAP API v2 oder SOAP v2 WSI vs REST?

Ressourcen

Dies könnte auch für Sie interessant sein:


1
Gute Antwort! Ich habe auch einen Test gemacht, und ich habe ungefähr ~ 0,4 Sekunden, um nur oAuth zu machen und eine Methode aufzurufen, die nichts tut, nur um zu testen. Der Overhead ist also groß. Ich habe den REST-Service in einem anderen Framework geschrieben, verwende jedoch Magento Db, um Daten zu bearbeiten. danke
Sergio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.