strongloop, how to define a response class for a custom endpoint

☆樱花仙子☆ 提交于 2019-12-08 03:53:03

问题


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.


回答1:


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



来源:https://stackoverflow.com/questions/32888450/strongloop-how-to-define-a-response-class-for-a-custom-endpoint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!