JSONRPC
Eredita: Object
Una classe di supporto per gestire dizionari che hanno l'aspetto di documenti JSONRPC.
Descrizione
JSON-RPC è uno standard che racchiude una chiamata di metodo in un oggetto JSON. L'oggetto ha una struttura particolare e identifica quale metodo viene chiamato e con quali parametri, e contiene un ID per tenere traccia delle risposte. Questa classe implementa quello standard su Dictionary; sarà necessario convertire tra un Dictionary e JSON con altre funzioni.
Metodi
make_notification(method: String, params: Variant) |
|
make_request(method: String, params: Variant, id: Variant) |
|
make_response(result: Variant, id: Variant) |
|
make_response_error(code: int, message: String, id: Variant = null) const |
|
process_action(action: Variant, recurse: bool = false) |
|
process_string(action: String) |
|
void |
set_method(name: String, callback: Callable) |
Enumerazioni
enum ErrorCode: 🔗
ErrorCode PARSE_ERROR = -32700
La richiesta non può essere elaborata perché non è valida secondo lo standard JSON (JSON.parse() non riuscito).
ErrorCode INVALID_REQUEST = -32600
È stata richiesta una chiamata a un metodo, ma il formato della richiesta non è valido.
ErrorCode METHOD_NOT_FOUND = -32601
È stata richiesta una chiamata a un metodo, ma non esisteva alcuna funzione con quel nome nella sottoclasse JSONRPC.
ErrorCode INVALID_PARAMS = -32602
È stata richiesta una chiamata a un metodo, ma i parametri specificati del metodo non sono validi. Non utilizzato dal JSONRPC integrato.
ErrorCode INTERNAL_ERROR = -32603
Si è verificato un errore interno durante l'elaborazione della richiesta. Non utilizzato dal JSONRPC integrato.
Descrizioni dei metodi
Dictionary make_notification(method: String, params: Variant) 🔗
Restituisce un dizionario sotto forma di notifica JSON-RPC. Le notifiche sono messaggi a colpo singolo che non prevedono una risposta.
method: Nome del metodo richiamato.params: Array o dizionario di parametri passati al metodo.
Dictionary make_request(method: String, params: Variant, id: Variant) 🔗
Restituisce un dizionario sotto forma di richiesta JSON-RPC. Le richieste vengono inviate a un server con l'aspettativa di una risposta. Il campo ID è utilizzato dal server per specificare a quale richiesta esatta sta rispondendo.
method: Nome del metodo chiamato.params: Un array o dizionario di parametri passati al metodo.id: Identifica questa richiesta in modo univoco. Il server deve inviare una risposta con lo stesso ID.
Dictionary make_response(result: Variant, id: Variant) 🔗
Quando un server ha ricevuto ed elaborato una richiesta, ci si aspetta che invii una risposta. Se non si desiderava una risposta, è necessario inviare una notifica.
result: il valore restituito dalla funzione che è stata chiamata.id: l'ID della richiesta a cui è indirizzata questa risposta.
Dictionary make_response_error(code: int, message: String, id: Variant = null) const 🔗
Crea una risposta che indica che una risposta precedente non è riuscita in qualche modo.
code: Il codice di errore che corrisponde al tipo di errore. Vedi le costanti di ErrorCode.message: Un messaggio personalizzato su questo errore.id: La richiesta a cui questo errore è una risposta.
Variant process_action(action: Variant, recurse: bool = false) 🔗
Fornito un dizionario che assume la forma di una richiesta JSON-RPC: decomprime la richiesta e la esegue. I metodi vengono risolti esaminando il campo denominato "method" e cercando una funzione con un nome equivalente nell'oggetto JSONRPC. Se ne viene trovata una, tale metodo viene chiamato.
Per aggiungere nuovi metodi supportati, estendi la classe JSONRPC e chiama process_action() sulla sottoclasse.
action: L'azione da eseguire, come un dizionario sotto forma di richiesta o notifica JSON-RPC.
String process_string(action: String) 🔗
There is currently no description for this method. Please help us by contributing one!
void set_method(name: String, callback: Callable) 🔗
Registra un callback per il nome del metodo specificato.
name: Il nome che i client possono utilizzare per accedere al callback.callback: Il callback che gestirà il metodo specifico.