2017-09-27 2 views
0

Ich möchte mit REST-Aufrufen meine serverseitigen RPC-Modulfunktionen aufrufen.Wakanda 2 - REST API zum Aufruf eines RPC

Ich habe eigentlich schon etwas in der Nähe, aber es gibt mir einen 500 internen Serverfehler und ich weiß nicht, wie man Fehler findet. Unten ist was ich habe. RPC ist für das Modul und in meinen Projekteinstellungen aktiviert. CORS ist erlaubt.

rpc(moduleName: string, methodName: string, params: any[]): Promise<any> { 
     let data = { 
      jsonrpc: '2.0', 
      //id: 167972631107, 
      module: moduleName, 
      method: methodName, 
      params: params 
     }; 

     let headers = new Headers({ 
      'Content-Type': 'application/json' 
     }); 

     return this.http.post(`http://127.0.0.1:8081/rpc/`, JSON.stringify(data), headers).toPromise(); 
    } 
+0

Hinweis: Dies ist tatsächlich richtig, ich hatte ein Problem im Modul selbst, und zwar war ich noch 'currentSession()' anstelle des neuen 'directory.currentSession' mit den Sitzungsdaten in dem Modul zu bekommen, und das war Der Grund, warum der RPC-Aufruf einen 500-Server-Fehler zurückgegeben hat. – NAMS

Antwort

1

Prüfen Sie zunächst, ob das Modul Berechtigungen ausgeführt von Client-Seite werden muss:

<?xml version="1.0" encoding="UTF-8"?> 
    <permissions> 
     <allow type="module" resource="myRPC" action="executeFromClient"/> 
    </permissions> 

Zweitens 500 Fehler kann ein nicht behandelter Fehler in die serverseitige Ausführung durch falsche Parameter anzuzeigen, durch die gesendeten Client oder einfach schlechter Code im Modul. Sie können den Browser-Netzwerkinspektor verwenden, um die von der POST-Anforderung gesendeten Daten zu überprüfen. Oder setzen Sie eine "Debugger" Trace-Anweisung in RPC-Code, um einen Haltepunkt festzulegen. Die Ausführung wird am Haltepunkt angehalten, wenn die Anforderung vom Server empfangen wird. Sie können dann die Laufzeit von dort aus überprüfen.

+0

Danke nochmal Xiang :) – NAMS