как применить api поиска в структуре loopback 4 узла js

Я создал API получения, в котором я хочу применить поиск по имени в параметре запроса. то есть, если мы не вводим параметр запроса в том же API, он отображает полный список, и если мы вводим какой-либо параметр запроса, он покажет только этот результат. Как я могу это сделать??? Вот мой код loopback4

         @get('/zones', {
responses: {
  '200': {
    description: 'Array of Zone model instances',
    content: {
      'application/json': {
        schema: {
          type: 'array',
          items: getModelSchemaRef(Zone, { includeRelations: true }),
        },
      },
    },
  },
},
})
async find(
 //@param.path.string('name') name: String,
@param.query.object('filter', getFilterSchemaFor(Zone)) filter?: Filter<Zone>,
): Promise<Zone[]> {
return this.zoneRepository.find({ include: [{ relation: 'cameras' }] });
 }

person neetz    schedule 21.12.2019    source источник


Ответы (1)


Если я правильно понял, вы хотите использовать дополнительную логику, которая проверяет параметр URL ?name=.

Для этого мы можем написать следующее:

@get('/zones', {
  responses: {
    '200': {
      description: 'Array of Zone model instances',
      content: {
        'application/json': {
          schema: {
            type: 'array',
            items: getModelSchemaRef(Zone, { includeRelations: true }),
          },
        },
    },
  },
},
})
async find(
 @param.path.string('name') name: string,
): Promise<Zone[]> {
  return this.zoneRepository.find({
    where: {name: name},
    include: [{ relation: 'cameras' }]
  });
}

Это добавит параметр name в функцию, а затем поместит его как часть запроса ORM.

person Rifa Achrinza    schedule 06.05.2020