如何在“ body”参数(sails-hook-swagger-generator)中设置嵌套对象?

时间:2019-01-03 09:20:12

标签: sails.js swagger

我使用 sails.js 0.12.13 sails-hook-swagger-generator 来构建详尽的文档。 我想在route.js的控制器中设置必要的参数。 我已经尝试过其他选项,但没有结果。 我可以按此处描述的那样设置主体参数,但是仅对非对象(非嵌套)类型的选项进行了描述。尝试使用“模式”也不会成功。

您能帮助我了解如何正确使用您的库来实现上述结果。

我的ajv验证模式示例。在结构上我需要与之相同的结果。

signin: {
  type: "object",
  properties: {
    company: {
      type: "object",
      properties: {
        name: {type: "string", minLength: 1, maxLength: 50},
        email: {type: "string", format: "email", minLength: 0, maxLength: 50}
      },
      required: ["name", "email"]
    },
    contact: {
      type: "object",
      properties: {
        firstName: {type: "string", minLength: 1, maxLength: 50},
        email: {type: "string", format: "email", minLength: 0, maxLength: 50}
      },
      required: ["firstName", "email"]
    }
  },
  required: ["company", "contact"]
}

感谢您的帮助!

建议我使用此pattern,然后将所需的数组作为字段移动到每个属性对象字段中。我尝试使用它,但是不幸的是,所有尝试配置路由以显示嵌入式对象的尝试都是不确定的。该代码无法转换为正确的swagger.json文件。

代码示例(最近一次尝试):

Route.generate({
  method: "POST",
  endpoint: "auth/signin",
  controller: controller,
  action: "signin",
  swagger: {
    summary: "User login",
    description: "User login",
    parameters: [{
      in: 'body',
      type: 'object',
      name: 'contact',
      schema: {
        type: 'object',
        properties: {
          name: { type: "string", minLength: 1, maxLength: 50 }
        }
      },
      required: true
    }, {
      in: 'body', 
      type: 'object',
      name: 'company',
      schema: {
        type: 'object',
        properties: {
          name: { type: "string", minLength: 1, maxLength: 50 }
        }
      },
      required: true
    }]
  }
});

在我的UI中,我有2个空的形体参数(联系人和公司),类型为“对象”。

0 个答案:

没有答案