Ось як я розумію і використовую їх у різних випадках використання:
Приклад: Управління рестораном
варіант використання для REST : управління замовленнями
- create order (POST), update order (PATCH), cancel order (DELETE), retrieve order (GET)
- endpoint: /order?orderId=123
Для управління ресурсами REST є чистим. Одна кінцева точка із заздалегідь визначеними діями. Це можна побачити як виставити екземпляри БД (Sql або NoSql) або класу всьому світу.
Приклад реалізації:
class order:
on_get(self, req, resp): doThis.
on_patch(self, req, resp): doThat.
Приклад фреймворку: Falcon для python.
варіант використання для RPC : управління операцією
- prepare ingredients: /operation/clean/kitchen
- cook the order: /operation/cook/123
- serve the order /operation/serve/123
Для аналітичних, оперативних, невідповідних, нерепрезентативних, заснованих на дії, RPC працює краще, і цілком природно думати функціонально.
Приклад реалізації:
@route('/operation/cook/<orderId>')
def cook(orderId): doThis.
@route('/operation/serve/<orderId>')
def serve(orderId): doThat.
Приклад фреймворку: колба для python