Ich habe einen Webdienst, der JSON-Parameter akzeptiert und spezifische URLs für Methoden hat, z.
http://IP:PORT/API/getAllData?p={JSON}
Dies ist definitiv kein REST, da es nicht zustandslos ist. Es berücksichtigt Cookies und hat eine eigene Session.
Ist es RPC? Was ist der Unterschied zwischen RPC und REST?
Lösung des Problems
Betrachten Sie das folgende Beispiel für HTTP-APIs, die Bestellungen modellieren, die in einem Restaurant aufgegeben werden.
- Die RPC-API denkt in Begriffen von „Verben", legt die Restaurantfunktionalität als Funktionsaufrufe offen, die Parameter akzeptieren, und ruft diese Funktionen über das HTTP-Verb auf, das am geeignetsten erscheint – ein „Get" für eine Abfrage usw., aber der Name des Verbs ist rein zufällig und hat keinen wirklichen Einfluss auf die eigentliche Funktionalität, da Sie jedes Mal eine andere URL aufrufen. Rückkehrcodes sind handcodiert und Teil des Servicevertrags.
- Im Gegensatz dazu modelliert die REST-API die verschiedenen Entitäten innerhalb der Problemdomäne als Ressourcen und verwendet HTTP-Verben, um Transaktionen gegen diese Ressourcen darzustellen – POST zum Erstellen, PUT zum Aktualisieren und GET zum Lesen. Alle diese Verben, die unter derselben URL aufgerufen werden, bieten unterschiedliche Funktionen. Allgemeine HTTP-Rückgabecodes werden verwendet, um den Status der Anforderungen zu übermitteln.
Eine Bestellung aufgeben:
- RPC: http://MyRestaurant:8080/Orders/PlaceOrder (POST: {Tacos-Objekt})
- REST: http://MyRestaurant:8080/Orders/Order?OrderNumber=asdf (POST: {Tacos-Objekt})
Abrufen einer Bestellung:
- RPC: http://MyRestaurant:8080/Orders/GetOrder?OrderNumber=asdf (GET)
- REST: http://MyRestaurant:8080/Orders/Order?OrderNumber=asdf (GET)
Aktualisieren einer Bestellung:
- RPC: http://MyRestaurant:8080/Orders/UpdateOrder (PUT: {Ananas-Tacos-Objekt})
- REST: http://MyRestaurant:8080/Orders/Order?OrderNumber=asdf (PUT: {Ananas-Tacos-Objekt})
Beispiel von sites.google.com/site/wagingguerillasoftware/rest-series/what-is-restful-rest-vs-rpc
Keine Kommentare:
Kommentar veröffentlichen