According to the documentation you can create custom response classes; https://docs.strongloop.com/display/public/LB/Remote+methods#Remotemethods-Argumentdescriptions
The remote method description I use is:
common/models/products-sku.js
ProductsSku.remoteMethod(
'getSomeData',
{
http: {path: '/getSomeData', verb: 'get'},
accepts: {arg: 'filter', type: 'object', http: { source: 'query'} },
returns: {
arg: 'id',
description: 'Custom endpoint',
type: 'CustomProductType',
root: true
}
}
);
In the same file I have a definition for the CustomProductType;
var CustomProductType: {
id: Number,
name: String,
...
};
Now if I open the explorer the response class is defined as CustomProductType but there is no model definition in the /explorer/resources/ProductsSku swagger definition (this is still swagger 1.2)
As this is not an actual model, how do i register/define the model, such that it is send with the api definition.
== What I have tried:
common/models/products-sku.js:
var DataSource = require('loopback-datasource-juggler').DataSource;
var ds = new DataSource('memory');
ds.define('CustomProductType', CustomProductType);
The memory datasource is because it is not an actual Model.
As this is not in the documentation, here is what I did.
Add the name of the response class you like to the remoteMethod definition
as I did above with the type: 'CustomProductType'
Go to the server/model-config.json file and add the type there
"CustomProductType": {
"dataSource": false,
"public": true
}
now add your model definition to the common/models/custom_product_type.json