2016-04-26 10 views
1

Ich versuche, 2 Loopback-Dienste zu verbinden, die A und B sagen lassen, mit Loopback-connector-Fernbedienung Datenquelle.Mit Loopback-connector-Remote benutzerdefinierter Methode in einem anderen Loopback-Service anrufen korrekte URL nicht erstellen

Auf B Ich habe diese benutzerdefinierte Remote-Methode:

/api/B/myModel/myMethod/{id} 

Diese Methode funktioniert gut, wenn ich die API-Explorer auf B Dienst zugreifen.

Dann auf A Service, den ich diese Methode zugreifen wollen, so habe ich die folgende Konfiguration (die die gleiche auch auf B) auf dem Remote-Modellobjekt:

myModel.remoteMethod(
    'myMethod', 
    { 
    http: {path: '/myMethod/:id', verb: 'get'}, 
     accepts: [ 
     {arg: 'id', type: 'number', required: true} 
     ], 
     returns: {type: 'object', root: true} 
    } 
); 

Von A ich kann B jeden Anruf tun wie finden, findById, etc. Aber wenn ich diese benutzerdefinierte Methode aufrufen bekomme ich diesen Fehler auf A:

Und bei den Protokollen in B suchen sah ich, dass A wird der Dienst wie folgt aufrufen:

strong-remoting:rest-adapter Error in GET /myModel/myMethod/:id?id=1231: Error: id must be a number

Warum ist stark-Remoting oder Loopback-connector-Fern nicht ersetzen die ID korrekt, wenn die URL erstellt wird? Habe ich etwas an der Konfiguration verpasst?

Antwort

1

benötigte Quellenpfad zu der entfernten Methode Konfiguration im A Service-Modell-Objekt hinzuzufügen:

{ arg: 'id', type: 'number', required: true, http: { source: 'path' }}