2015-03-05 8 views
12

Attualmente sto costruendo un'applicazione di loopback, che ha solo un singolo modello chiamato Phone. Ecco il mio codice common/models/phone.js:Come posso creare un metodo remoto Loopback con uno schema modello?

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', 
    } 
    }); 

}; 

Quando mi tiro sul mio API esploratore sulla porta 3000, e la considero la mia nuova creazione chiamata random API, vedo il seguente:

Random API Call in Loopback Explorer

Come si può vedere sopra, il mio "schema modello" è vuoto. Booo!

Quello che mi piacerebbe realizzare è qualcosa di simile alla funzione built-in metodi API, che simile a questa:

Working API Call in Loopback Explorer

Come potete vedere sopra, il "Modello Schema" mostra ciò che apparirà l'output effettivo della chiamata API.

Sto cercando di capire come ottenere questo risultato con il mio endpoint remoto, ma finora non ho avuto fortuna.

Qualsiasi suggerimento è benvenuto.

PUNTI BONUS: C'è un modo per dire semplicemente che il valore di loopback mio ritorno è solo un modello già definito? Nel mio caso tutto quello che sto facendo è restituire un modello di telefono esistente, quindi sarebbe bello lasciare che Loopback sappia che in qualche modo e farlo generare automaticamente la documentazione di conseguenza.

Grazie!

risposta

12

provare a eseguire la vostra applicazione con de seguente comando:

DEBUG = loopback: nodo routeHelpers: explorer.

si sarà in grado di vedere ciò che restituisce opzioni utilizzano de costruito in metodi API

È necessario utilizzare una struttura modello definito nella directory comuni/modelli nel parametro ritorna come

rendimenti : [{arg:"data",type:"Mymodels",root:true}]

0

Per i vostri punti bonus:

Quando si chiama il remoteMethod() è necessario specificare il modello dello schema che si desidera tornare:

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

Extra: se lo schema desiderato è di un altro modello, si deve richiedere esso pure, al fine per evitare errori "non definiti":

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

    Model1.someMethod = function(args, cb) { 
     var Model2 = app.models.Model2; 
      [...] 
     } 
Problemi correlati