تحليل وسلسلة رسائل JSON-RPC2 في تطبيق القبعات الحرة أو Delphi. مستودع GIT: https://github.com/r3code/pascal-jsonrpc-lite
مستوحاة من https://github.com/teambition/jsonrpc-lite.
تنفيذ مواصفات JSON-RPC 2.0
uses ujsonrpc;إرجاع الكائن كما isuperobject clonned نموذج json-object.
إرجاع تمثيل كائن سلسلة JSON.
params:
indent : {Boolean} المسافة البادئة الناتجة عن JSONescape : {boolean} excape chars charsينشئ كائن طلب JSON-RPC 2.0 ، إرجاع كائن IJSONRPCMESSAGE. يدرك ijsonrpcmessage.
params:
id : {String | Integer}method : {String}params : {ijsonrpcmessage}مثال:
var requestObj: TJsonRpcMessage;
requestObj := TJsonRpcMessage.Request( ' 123 ' , ' update ' , SO( ' {list: [1, 2, 3]} ' ));
writeln(requestObj.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// method: 'update',
// params: {list: [1, 2, 3]}
// } ينشئ كائن إشعار JSON-RPC 2.0 ، إرجاع كائن IJSONRPCMESSAGE.
params:
method : {String}params : {ijsonrpcmessage}مثال:
var notificationObj: TJsonRpcMessage;
notificationObj := TJsonRpcMessage.notification( ' update ' , SO( ' {list: [1, 2, 3]} ' ));
writeln(notificationObj.asString);
// {
// jsonrpc: '2.0',
// method: 'update',
// params: {list: [1, 2, 3]}
// } ينشئ كائن استجابة نجاح JSON-RPC 2.0 ، إرجاع كائن IJSONRPCMESSAGE.
params:
id : {String | Integer}result : {ijsonrpcmessage}مثال:
var msg: TJsonRpcMessage;
msg := TJsonRpcMessage.success( ' 123 ' , ' OK ' );
writeln(msg.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// result: 'OK',
// } ينشئ كائن استجابة خطأ JSON-RPC 2.0 ، إرجاع كائن IJSONRPCMESSAGE.
params:
id : {String | Integer}error : {ijsonrpcmessage} استخدم tjsonrpcerror أو أشقاءهامثال:
var msg: TJsonRpcMessage;
msg := TJsonRpcMessage.Error( ' 123 ' , TJsonRpcError.Create(- 32000 , ' some error ' , ' blabla ' ));
writeln(msg.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// error: {code: -32000, 'message': 'some error', data: 'blabla'},
// } يأخذ حمولة JSON-RPC 2.0 (سلسلة) ويحاول تحليلها في JSON. إذا نجحت ، حدد ما هو الكائن (الاستجابة أو الإخطار أو النجاح أو الخطأ أو غير صالح) ، وإرجاع نوعه والكائن المنسق بشكل صحيح.
params:
s : {String}إرجاع كائن {ijsonrpcparsed}.
يظهر نوع الرسالة التي تم اكتشافها أثناء التحليل. الأنواع: jotinvalid ، jotrequest ، jotnotification ، jotsuccess ، joterror.
إرجاع واحد من <{jsonrpcobjecttype}.
إرجاع المرجع المخزن إلى ijsonrpcmessage.
يدرك الواجهة ijsonrpcparsed.
إنشاء مثيل tjsonrpcparsed.
params:
objType : {tjsonrpcobjecttype} نوع تنسيق الرسالةpayload : {ijsonrpcmessage} هيئة الرسائليصف كائن خطأ JSON-RPC 2.0. يدرك الواجهة ijsonrpcmessage.
إنشاء مثيل tjsonrpcerror.
params:
code : {Integer}message : {String}data : {string | isuperObject | nil} اختياريأمثلة:
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , ' some data ' );أو
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , SO( ' { a: 1, extra: "some data"} ' ));قم بإنشاء كائن {tjsonrpcerror} مع رمز الخطأ -32600.
params:
data : {string | isuperObject | nil} - بيانات إضافية قم بإنشاء كائن {tjsonrpcerror} مع رمز الخطأ -32601.
params:
data : {string | isuperObject | nil} - بيانات إضافية قم بإنشاء كائن {tjsonrpcerror} مع رمز الخطأ -32602.
params:
data : {string | isuperObject | nil} - بيانات إضافية قم بإنشاء كائن {tjsonrpcerror} مع رمز الخطأ -32603.
params:
data : {string | isuperObject | nil} - بيانات إضافية قم بإنشاء كائن {tjsonrpcerror} مع رمز الخطأ -32700.
params:
data : {string} - نص الخطأ