So verstehe und verwende ich sie in verschiedenen Anwendungsfällen:
Beispiel: Restaurantmanagement
Anwendungsfall für REST : Auftragsverwaltung
- create order (POST), update order (PATCH), cancel order (DELETE), retrieve order (GET)
- endpoint: /order?orderId=123
Für das Ressourcenmanagement ist REST sauber. Ein Endpunkt mit vordefinierten Aktionen. Es kann eine Möglichkeit gesehen werden, eine DB (SQL oder NoSQL) oder Klasseninstanzen der Welt zugänglich zu machen.
Implementierungsbeispiel:
class order:
on_get(self, req, resp): doThis.
on_patch(self, req, resp): doThat.
Framework-Beispiel: Falcon für Python.
Anwendungsfall für RPC : Operations Management
- prepare ingredients: /operation/clean/kitchen
- cook the order: /operation/cook/123
- serve the order /operation/serve/123
Für analytische, betriebliche, nicht reagierende, nicht repräsentative, handlungsbasierte Jobs funktioniert RPC besser und es ist sehr natürlich, funktional zu denken.
Implementierungsbeispiel:
@route('/operation/cook/<orderId>')
def cook(orderId): doThis.
@route('/operation/serve/<orderId>')
def serve(orderId): doThat.
Framework-Beispiel: Flasche für Python