how to change the response of api in loopback, how to change in js file corresponding to a json model

100 Views Asked by At

I have a model, using postman I am sending request to this model, and in response I am getting the complete record(suppose 25 columns I have), so in response I am getting 25 columns back. I want to see only one column in the response, how can I change that. In javascript file, I have already written before save and after save methods.

Instead of all the columns detail, i want only one column detail in response which i m getting in postman

1

There are 1 best solutions below

2
Shubham P On BEST ANSWER

Solution 1:

For one time requests, you can pass on the filter query object in the get request with fields options specifying the columns you need.

Example: To only return the id, and name column.

{
  "fields": {
    "id": true,
    "name": true
  }
}

fields can also be supplied on server side like this:

yourRepository.find({fields: ['id', 'name']});

Docs: https://loopback.io/doc/en/lb4/Fields-filter.html

Solution 2:

To disable returning the columns in every request, specify hiddenProperties in model definition.

Like below:

@model({
  settings: {
    hiddenProperties: ['password'] // 
  }
})
class MyUserModel extends Entity {
  @property({id: true})
  id: number;
   @property({type: 'string'})
  email: string;
   @property({type: 'string'})
  password: string;
  ...
}

Properties specified in hiddenProperties will never be returned in responses, you can access them in your js/ts code if you need.

Docs: https://loopback.io/doc/en/lb4/Model.html#hidden-properties