Oto jak je rozumiem i używam w różnych przypadkach użycia:
Przykład: Zarządzanie restauracją
przypadek użycia dla REST : zarządzanie zamówieniami
- create order (POST), update order (PATCH), cancel order (DELETE), retrieve order (GET)
- endpoint: /order?orderId=123
W przypadku zarządzania zasobami REST jest czysty. Jeden punkt końcowy ze wstępnie zdefiniowanymi akcjami. Można go postrzegać jako sposób ujawnienia DB (Sql lub NoSql) lub instancji klas światu.
Przykład implementacji:
class order:
on_get(self, req, resp): doThis.
on_patch(self, req, resp): doThat.
Przykład struktury: Falcon dla Pythona.
przypadek użycia RPC : zarządzanie operacjami
- prepare ingredients: /operation/clean/kitchen
- cook the order: /operation/cook/123
- serve the order /operation/serve/123
W przypadku stanowisk analitycznych, operacyjnych, niereagujących, niereprezentatywnych i opartych na działaniu RPC działa lepiej i myślenie funkcjonalne jest bardzo naturalne.
Przykład implementacji:
@route('/operation/cook/<orderId>')
def cook(orderId): doThis.
@route('/operation/serve/<orderId>')
def serve(orderId): doThat.
Przykład struktury: Flask dla Pythona