Analisar e serializar mensagens JSON-RPC2 no aplicativo Pascal Free-Pascal ou Delphi. Repositório Git: https://github.com/r3code/pascal-jsonrpc-lite
Inspirado em https://github.com/teambition/jsonrpc-lite.
Uma implementação das especificações JSON-RPC 2.0
uses ujsonrpc;Retorna objeto como isuperObject clonned formulário interno JSON-Object.
Retorna uma representação do objeto de string json.
Params:
indent : {boolean} Recunda JSON resultanteescape : {boolean} escapar de chars especiaisCria um objeto de solicitação JSON-RPC 2.0, retorne o objeto ijsonrpcMessage. Percebe ijsonrpcmessage.
Params:
id : {String | Inteiro}method : {string}params : {ijsonrpcmessage}Exemplo:
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]}
// } Cria um objeto de notificação JSON-RPC 2.0, retorna o objeto ijsonrpcMessage.
Params:
method : {string}params : {ijsonrpcmessage}Exemplo:
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]}
// } Cria um objeto de resposta de sucesso JSON-RPC 2.0, retorna o objeto ijsonrpcMessage.
Params:
id : {String | Inteiro}result : {ijsonrpcmessage}Exemplo:
var msg: TJsonRpcMessage;
msg := TJsonRpcMessage.success( ' 123 ' , ' OK ' );
writeln(msg.asString);
// {
// jsonrpc: '2.0',
// id: '123',
// result: 'OK',
// } Cria um objeto de resposta de erro JSON-RPC 2.0, retorne o objeto ijsonrpcMessage.
Params:
id : {String | Inteiro}error : {ijsonrpcmessage} use tjsonrpCerror ou seus irmãosExemplo:
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'},
// } Pega uma carga útil JSON-RPC 2.0 (string) e tenta analisá-la em um JSON. Se for bem -sucedido, determine qual objeto é (resposta, notificação, sucesso, erro ou inválido) e retorne seu tipo e objeto adequadamente formatado.
Params:
s : {string}Retorna um objeto de {ijsonrpcparsed}.
Mostra o tipo de mensagem detectada durante a análise. Tipos: JotInValid, JotRequest, JotNotification, Jotsuccess, Joterror.
Retorna um dos <{jsonrpCObjectType}.
Retorna o referência armazenado para ijsonrpcMessage.
Percebe a interface ijsonrpcparsed.
Crie uma instância TJSONRPCPARSED.
Params:
objType : {tjsonrpCObjectType} Formato de mensagem Tipopayload : {ijsonrpcmessage} corpo de mensagemDescreve o objeto de erro JSON-RPC 2.0. Realiza interface ijsonrpcMessage.
Crie uma instância TJSONRPCERROR.
Params:
code : {Inteiro}message : {string}data : {string | isUperObject | nil} opcionalExemplos:
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , ' some data ' );ou
var error: TJsonRpcError;
error = TJsonRpcError.Create(- 32651 , ' some error ' , SO( ' { a: 1, extra: "some data"} ' ));Criar {TjsonrpCerror} objeto com código de erro -32600.
Params:
data : {string | isUperObject | nil} - dados extras Crie {tjsonrpCerror} objeto com código de erro -32601.
Params:
data : {string | isUperObject | nil} - dados extras Crie {tjsonrpCerror} objeto com código de erro -32602.
Params:
data : {string | isUperObject | nil} - dados extras Crie {TjsonrpCerror} objeto com código de erro -32603.
Params:
data : {string | isUperObject | nil} - dados extras Crie {TjsonrpCerror} objeto com código de erro -32700.
Params:
data : {string} - texto de erro