Bunları farklı kullanım durumlarında şu şekilde anlıyorum ve kullanıyorum:
Örnek: Restoran Yönetimi
REST için kullanım durumu : sipariş yönetimi
- create order (POST), update order (PATCH), cancel order (DELETE), retrieve order (GET)
- endpoint: /order?orderId=123
Kaynak yönetimi için REST temizdir. Önceden tanımlanmış eylemlere sahip bir uç nokta. Bir DB'yi (Sql veya NoSql) veya sınıf örneklerini dünyaya göstermenin bir yolu görülebilir.
Uygulama Örneği:
class order:
on_get(self, req, resp): doThis.
on_patch(self, req, resp): doThat.
Çerçeve Örneği: Falcon for python.
RPC için kullanım durumu : operasyon yönetimi
- prepare ingredients: /operation/clean/kitchen
- cook the order: /operation/cook/123
- serve the order /operation/serve/123
Analitik, operasyonel, yanıt vermeyen, temsili olmayan, eylem tabanlı işler için RPC daha iyi çalışır ve işlevsel düşünmek çok doğaldır.
Uygulama Örneği:
@route('/operation/cook/<orderId>')
def cook(orderId): doThis.
@route('/operation/serve/<orderId>')
def serve(orderId): doThat.
Çerçeve Örneği: Python için Flask