0
votes

enter image description here

I try override find api of strongloop rest endpoint. I want to return an array of objects. But how do I specify the schema for the object? As you can see from the picture above, the model schema is empty.

Below is the code of my company model remoteMethod:

    Company.remoteMethod(
        'find',
        {
            accepts: {arg: 'msg', type: 'string'},
            returns: {type: 'array', root: true},
            http: {path: '/', verb:'get'}
        }
    )
1
Did you create a company model? If so, what is the configuration? That config defines your schema... Look at the documentation for how to create models. - Jordan Kasper
@jakerella: Yes, I create a company model. But I want to overwrite the api /companies {GET} by the remote method and it is already able to be achieved. My problem is that, in the api explorer, the Model Schema is [{}], which is not showing the properties of the object. - Shaohua Huang
Aaah, I see... I'm not sure how to do that. - Jordan Kasper

1 Answers

3
votes

If I understand you right, your'e trying to show at this section the returned model as follows:

[
  {
    "companyProperty1": "companyProperty1Type",
    "companyProperty2": "companyProperty2Type",
    .
    .
    "companyPropertyN": "companyPropertyNType",
  }
]

In order to achieve this kind of return type representation, you need to define your return type in remoteMethod options to be an array of the desired model.

Here is your code, with the required edit, using modelName propery of Model base class:

Company.remoteMethod(
    'find',
    {
        accepts: {arg: 'msg', type: 'string'},
        returns: {type: [Company.modelName], root: true},
        http: {path: '/', verb:'get'}
    }
)