2015-03-05 12 views
12

Aktualnie buduję aplikację zwrotną, która ma tylko jeden model o nazwie Phone. Oto mój kod common/models/phone.js:Jak utworzyć zdalną metodę sprzężenia zwrotnego ze schematem modelu?

module.exports = function(Phone) { 

    // Return a random phone's data. 
    Phone.random = function(callback) { 
    return callback(null, { 
     id: '12345', 
     number: '+18182179222', 
     name: 'Randall Degges' 
    }); 
    }; 

    Phone.remoteMethod('random', { 
    description: 'Return a random phone.', 
    accepts: [], 
    returns: [ 
     //{ type: 'object', root: true, description: 'return value' }, 
     { arg: 'id', type: 'string', description: 'phone id', required: true, root: true }, 
     { arg: 'number', type: 'string', description: 'phone number', required: true, root: true }, 
     { arg: 'name', type: 'string', description: 'phone name', required: false, root: true } 
    ], 
    http: { 
     verb: 'get', path: '/random', 
    } 
    }); 

}; 

Kiedy podciągnąć moje API Explorer na porcie 3000, i zobaczyć moje nowo utworzonego połączenia random API, widzę następujące:

Random API Call in Loopback Explorer

Jak widać powyżej, mój "Schemat modelowy" jest pusty. Booo!

Co chciałbym osiągnąć coś podobnego do wbudowanego metod API, które wyglądają mniej więcej tak:

Working API Call in Loopback Explorer

Jak widać powyżej, „Wzór Schema” pokazuje, co rzeczywisty wynik wywołania API będzie wyglądać.

Próbuję dowiedzieć się, jak to osiągnąć z moim zdalnym punktem końcowym, ale jak dotąd nie miałem szczęścia.

Wszelkie sugestie są mile widziane.

BONUS PUNKTY: Czy istnieje sposób, aby po prostu powiedzieć, że wartość sprzężenia zwrotnego mój powrót jest tylko już zdefiniowane modelu? W moim przypadku wszystko, co robię, polega na zwrocie istniejącego modelu telefonu, więc dobrze byłoby, gdyby Loopback wiedział, że w jakiś sposób i automatycznie wygeneruje odpowiednią dokumentację.

Dziękujemy!

Odpowiedz

12

Spróbuj uruchomić aplikację z DE następujące polecenia:

DEBUG = sprzężenia zwrotnego: węzeł routeHelpers: Explorer.

będzie można zobaczyć, co zwraca opcje korzystania de zbudowany w metodach API

Musisz użyć wzorcowy układ określony w katalogu common/modeli w parametrze powraca jak

zwrotów : [{arg:"data",type:"Mymodels",root:true}]

0

Dla swoich punktów bonusowych:

Gdy nazywamy remoteMethod() trzeba określić model schematu, który chcesz zwrócić:

returns: { arg: 'data', type: 'Phone', root: true}

Extra: jeśli schemat poszukiwany jest od innego modelu, trzeba wymagają również, aby Aby uniknąć błędów "niezdefiniowanych":

module.exports = function(Model1) { 
    var app = require('../../server/server'); 

    Model1.someMethod = function(args, cb) { 
     var Model2 = app.models.Model2; 
      [...] 
     } 
Powiązane problemy