如何在Loopback explorer中隐藏'id'属性?

nsb*_*sbm 3 javascript node.js swagger strongloop loopbackjs

是否可以在由Strongloop Loopback中的资源管理器生成的swagger-ui中的方法中隐藏id属性?我不希望用户创建新资源并发送id属性.我知道如果用户发送id,它可以被忽略但我想在资源管理器中隐藏它.

Reu*_*cha 10

为了隐藏'id'属性,您需要将此字段声明为隐藏.

在YOUR_MODEL.json文件中:

{
  "name": "YOUR_MODEL",
  .
  .
  .
  "properties": {
     // your custom properties
  },
  "hidden": ["id"], // this attribute specifies which attributes need to be hidden
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

当声明为隐藏的属性时,请注意:

  1. 它不会暴露给用户
  2. 虽然隐藏的,如果用户将提供一个值与此属性,该属性不会被默认忽略,将与提供的值进行处理.因此,需要手动忽略.

例如,如果我们有'User'模型如下:

{
  "name": "User",
  .
  .
  .
  "properties": {
     "id": "string",
     "name": "string",
     "password": "string",

  },
  "hidden": ["id", "password"],
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

/api/UserGET请求将提供仅具有"名称"属性的用户列表

但是, /api/User身体发布:

{
  "user" : "USER",
  "password": "PASS",
  "id" : "USER_PROVIDED_ID"
}
Run Code Online (Sandbox Code Playgroud)

正文中提供的用户将使用其中的值进行保存.