كيف تتعامل مع واجهة برمجة تطبيقات موجهة إلى كائن مع JSON-RPC؟

StackOverflow https://stackoverflow.com/questions/4234753

  •  26-09-2019
  •  | 
  •  

سؤال

لدي واجهة برمجة تطبيقات في C# لن يتم تعيينها إلى JSON-RPC بسبب حقيقة أن JSON-RPC موجهة نحو الإجرائي. كيف في JSON-RPC هل تمثل واجهة برمجة تطبيقات موجهة للكائن؟
يمكنني بالطبع استخدام ملحقات JSON-RPC بحيث يبدو الطلب:

{ "jsonrpc":"2.0", method:"ObjectName.Method", "params":[], "id": 1 }

لكنه يشعر بالاختراق نوعا ما ويتطلب أيضا الكثير من العمل لتحديده. يمكنني أيضًا تضمينها كمعلمة ولكن مرة أخرى لا تشعر أنها على صواب.
هل هناك أفضل ممارسة فيما يتعلق بالعمل ضد واجهة برمجة التطبيقات الموجهة نحو الكائن باستخدام JSON-RPC؟

هل كانت مفيدة؟

المحلول

JSON-RPC هو JSON REMOTE إجراء استدعاء وعلى الإجراء الافتراضي الموجهة.

ومع ذلك ، إذا كنت تعمل عبر HTTP ، فيمكنك رؤية كل خدمة RPC ككائن. أي إذا كنت تصل /foo/bar و اتصل beep فوق JSON-RPC عبر HTTP ثم تتصل beep طريقة foo خدمة bar هدف.

وإلا يمكنك القيام بذلك بالطريقة التي تم تعيين جميع OOP على مكالمات الإجراءات:

foo.bar(x1,x2) -> bar(foo,x1,x2) 

حيث يكون FOO "مؤشر" إلى كائن ، بالنسبة إلى RPC ، قد يكون كائن UUID. (هكذا يتم ذلك بالفعل في بعض RPCs).

لذلك تتصل

f=new integer(0);
f.add(10);
f.add(20);
x=f.get();
delete f;

يذهب إلى:

client:   new("integer",0)
server:   return "23ab3cb45"
client:   add("23ab3cb45",10);
client:   add("23ab3cb45",20);
client:   get("23ab3cb45");
server:   return 30
client:   delete("23ab3cb45");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top