Nutzung des Json Client

  • Der Json Client vereinfacht das Erstellen, Senden und Verarbeiten von Json Requests
  • Unterstützt sowohl einzelne Requests als auch Multirequests
  • Benötigt die jQuery Bibliothek
  • Initialisierung mit der URI zum Server
    var jsonclient = new JsonClient('%uri%');
  • Einzelner Request mit "success" und "exception" Callbackmethode
  • In beiden Callbackmethoden steht das Objekt des JsonRequests unter der Variable "jsonrequest" zur Verfügung
    jsonclient.send(new JsonRequest('%id%', '%method%', %params%,
        {
            success : function (json, statusText, jqXHR) {},
            exception : function (json, statusText, jqXHR) {},
        }
    ));
  • Für Multirequest können mehrere einzelne JsonRequests übergeben werden. Dabei muss beachtet werden dass die übergebene ID jedes Requests eindeutig ist innerhalb des Multirequests sodass die einzelnen Antworten für die "success" und "exception" Callbackmethoden voneinander unterschieden werden können
    jsonclient.send([
        new JsonRequest('%id%', '%method%', %params%,
            {
                success : function (json, statusText, jqXHR) {},
                exception : function (json, statusText, jqXHR) {},
            }
        ),
        new JsonRequest('%id%', '%method%', %params%,
            {
                success : function (json, statusText, jqXHR) {},
                exception : function (json, statusText, jqXHR) {},
            }
        )
    ]);
  • Sowohl Einzelrequests als auch Multirequests können dem Server eine Map mitgeben, sodass alle angegeben Responseparameter zusätzlich unter dem angegebenen Alias verfügbar sind. Dies ist vor allem für Multirequests nützlich bei denen die Responseparameter nicht den gleichen Namen haben wie der nachfolgende Request benötigt
    jsonclient.send(new JsonRequest('%id%', '%method%', %params%,
        {
            success : function (json, statusText, jqXHR) { json.result.%aliasname%; },
            map : {%parametername% : %aliasname%},
        }
    ));
  • Setzen von Defaultwerten für jeden nachfolgenden Request
    jsonclient.setDefaultParam('%param%', %value%);
  • Setzen der Htaccess Authentifizierung für jeden nachfolgenden Request
    jsonclient.setAuthenticate('%username%', %password%);
  • Abfrage der SMD
    jsonclient.smd({success : function (json) {}});

Clientnachrichten

  • Es können Callbackmethoden für die verschiedenen Keys von Clientnachrichten registriert werden
  • Bei jeder Response wird diese nach Clientnachrichten überprüft und anhand der Keys entsprechend aufgerufen
    jsonclient.setCallback(
        '%key%',
        function(json, timestamp) {}
    );
  • Die Keys 'response' und 'timestamp' werden für die Kommunikation bereits verwendet und sind daher nicht erlaubt

Eigener Client

Einzelrequest

  • Alle Requests gehen an die '/jsonrpc2.php'
  • "method" enthält den Servicenamen
  • "params" enthält ein Json Objekt aller Parameter
  • "id" kann beliebig definiert werden und wird in der Response wieder zurück gegeben
  • "jsonrpc" definiert die Version des JsonRPC Protokolls das verwendet wird

Multirequest

  • Alle Requests gehen an die '/multijsonrpc2.php'
  • Alle Key/Value Paare der Responses stehen nachfolgenden Requests als Eingangsparameter zur Verfügung um Serviceaufrufe zu verketten
  • Die einzelnen Requests werden als Array übergeben und als Antwort kommt ein Array an Responses

Clientnachrichten

Bei Problemen und Fragen sende eine E-Mail an: jsonclient@dragonjsonserver.de