Así es como los entiendo y los uso en diferentes casos de uso:
Ejemplo: gestión de restaurantes
caso de uso de REST : gestión de pedidos
- create order (POST), update order (PATCH), cancel order (DELETE), retrieve order (GET)
- endpoint: /order?orderId=123
Para la gestión de recursos, REST es limpio. Un punto final con acciones predefinidas. Puede verse una forma de exponer una base de datos (Sql o NoSql) o instancias de clase al mundo.
Ejemplo de implementación:
class order:
on_get(self, req, resp): doThis.
on_patch(self, req, resp): doThat.
Ejemplo de marco: Falcon para python.
caso de uso para RPC : gestión de operaciones
- prepare ingredients: /operation/clean/kitchen
- cook the order: /operation/cook/123
- serve the order /operation/serve/123
Para trabajos analíticos, operativos, no receptivos, no representativos y basados en acciones, RPC funciona mejor y es muy natural pensar en funcional.
Ejemplo de implementación:
@route('/operation/cook/<orderId>')
def cook(orderId): doThis.
@route('/operation/serve/<orderId>')
def serve(orderId): doThat.
Ejemplo de marco: matraz para python