xat / contao-rpc

RPC Framework for Contao
2 stars 0 forks source link

RpcRunner find überdenken #17

Closed mediabakery closed 11 years ago

mediabakery commented 11 years ago

Auf der einen Seite ist es gut so offen zu sein, auf der anderen Seite würde ich mir eigentlich wünschen, wenn wir schneller den provider der übermittelt wird ausfindig machen bevor wir testen welcher provider passt. Die Variable provider kommt doch immer über POST oder GET oder? und wenn provider nicht gefunden wird, wird der default (tl_settings) genommen. Dann könnten wir noch überlegen ob wir, wenn provider nicht gesetzt wurde auch den eigentlichen RPC Request nicht in 'rpc' suchen sondern dann im "Root".

Sorry etwas spät, kann mich nicht so richtig mehr ausdrücken ;)

xat commented 11 years ago

Bevor ich den Code das erstemal gerefactored hatte war der Provider auch einfach fest in POST. Xtra hat mich dann darauf aufmerksam gemacht, dass die Daten allerdings nicht zwingend in POST drinnstecken muessen. Zum Beispiel koennte der Provider auch im Header der Anfrage mit uebergeben werden oder zum beispiel wenn die rpc.php auf commondozeilenebene von einem anderen programm aufgerufen wird ueber die arguments reinkommen etc. Von daher wuerd ich das schon so offen lassen. Bzw. wurde aus genau den gruenden eben dann so abstrahiert. Weil so wies jetzt ist kann die Eingabe im Prinzip von ueberal her kommen.

Mit "Root" meinst du wenn der POST request quasi raw verschickt wurde und nicht mit www/formdata encoded?

mediabakery commented 11 years ago

boha, da habe ich mich wirklich sehr sehr wirr ausgedrückt. Ich stimme dir zu und würde es mit dem provider suchen so lassen. Gibt auf jeden Fall mehr Sinn. Was ich mit "Root" meinte war was anderes. Ich hatte es geschrieben, konnte es aber nicht richtig gut beschreiben. Mache später ein Beispiel für eine Anfrage, wie sie jetzt gemacht werden muss und wie ich sie am liebsten machen würde. Dauert aber noch etwas.

mediabakery commented 11 years ago
window.addEvent('domready', function() {

    var rpcRequest = new Request.JSON({
        url: "http://192.168.133.40:8888/testsystem/rpc.php",
        onSuccess: function(response){
            if (response.error) {
                alert(response.error.message);
            }else{
                $('res').set('html',response.result);
            }
        }
    });

    // der alte Weg
    rpcRequest.post({
        'provider': 'json',
        'rpc':JSON.encode({
            'id': 123,
            'jsonrpc':'2.0',
            'method':'helloWorld',
            'params':{'name':'Horst'}
        })});

    // der Wunsch
    rpcRequest.post({
        'id': 123,
        'jsonrpc':'2.0',
        'method':'helloWorld',
        'params':{'name':'Horst'}
    });
});
mediabakery commented 11 years ago

Wie besprochen: Ist nicht, da zB API Key, username password etc mit übergeben werden muss und ja nichts in den params zu suchen hat. Wie im IRC besprochen