回送4大张旗鼓生成的过滤器似乎不起作用

时间:2019-06-13 17:59:36

标签: loopbackjs loopback

我建立了连接到mysql数据库的基本模型和控制器。一切看起来都很好,并且正在运行。

我的定义模型如下。

import { Entity, model, property } from '@loopback/repository';

@model({
  settings: {
    mysql: {
      table: 'definition'
    }
  }
})
export class Definition extends Entity {
  @property({
    type: 'number',
    id: true,
    generated: true,
    forceId: true,
    required: false,
    description: 'The unique identifier for a definition',
  })
  id: number;

  @property({
    type: 'string',
    required: true,
  })
  name: string;

  @property({
    type: 'string',
    required: true,
  })
  process_id: string;


  constructor(data?: Partial<Definition>) {
    super(data);
  }
}

export interface DefinitionRelations {
  // describe navigational properties here
}

export type DefinitionWithRelations = Definition & DefinitionRelations;

当我启动并运行它后,单击浏览器进行测试。

我单击“尝试一下”以获得get / definitions,唯一启用的可编辑字段是过滤器字段。

它重新填充了这样的值...

 {
  "where": {},
  "fields": {
    "id": true,
    "name": true,
    "process_id": true
  },
  "offset": 0,
  "limit": 0,
  "skip": 0,
  "order": [
    "string"
  ]
}

我必须清除它才能使其正常工作。当我不带过滤器运行它时,将返回这些结果。

[
  {
    "id": 10,
    "name": "Place Manual Payoff Order Process Config",
    "process_id": "Process_PlaceManualPayoffOrderProcessConfig"
  },
  {
    "id": 11,
    "name": "test",
    "process_id": "Test"
  },
  {
    "id": 12,
    "name": "test2",
    "process_id": "test2"
  }
]

我正在尝试使用过滤器表达式来仅返回具有特定process_id字段的表达式。因此,我将过滤器更改为这样。

{
  "where": {"process_id": "test2"}
}

它仍然返回相同的结果。

[
  {
    "id": 10,
    "name": "Place Manual Payoff Order Process Config",
    "process_id": "Process_PlaceManualPayoffOrderProcessConfig"
  },
  {
    "id": 11,
    "name": "test",
    "process_id": "Test"
  },
  {
    "id": 12,
    "name": "test2",
    "process_id": "test2"
  }
]

过滤器当前在环回4中工作还是我使用不正确?

编辑:如果我在URL字符串中发布过滤器,它们将起作用。似乎openapi ui并未将过滤器的该部分生成到URL字符串中。

1 个答案:

答案 0 :(得分:1)

  

好像openapi ui并未将过滤器的那部分生成到URL字符串中。

是的,这是一个精确的描述。

OpenAPI Spec版本3.x没有指定如何将深度嵌套的值序列化为URL查询,而swagger-js(为LoopBack的REST API Explorer提供动力的库)swagger-ui默默地忽略了这些值

已报告此问题,并在此处进行讨论: