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

时间:2016-01-27 14:18:39

标签: javascript node.js swagger loopbackjs strongloop

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

1 个答案:

答案 0 :(得分:10)

为了隐藏'id'属性,you need declare this field as hidden.

在YOUR_MODEL.json文件中:

{
  "name": "YOUR_MODEL",
  .
  .
  .
  "properties": {
     // your custom properties
  },
  "hidden": ["id"], // this attribute specifies which attributes need to be hidden
  .
  .
  .
}

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

  1. 不向用户公开
  2. 虽然隐藏,但如果用户发送提供了此属性的值,则默认情况下不会忽略该属性,并且将使用提供的值进行处理。因此,需要手动忽略。
  3. 例如,如果我们有'User'模型如下:

    {
      "name": "User",
      .
      .
      .
      "properties": {
         "id": "string",
         "name": "string",
         "password": "string",
    
      },
      "hidden": ["id", "password"],
      .
      .
    }
    

    /api/User GET请求将提供仅'name'属性的用户列表

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

    {
      "user" : "USER",
      "password": "PASS",
      "id" : "USER_PROVIDED_ID"
    }
    

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