Swagger Model Schema不包含body参数的变量名

时间:2016-09-27 15:09:16

标签: java json swagger swagger-ui

在我的应用程序的Swagger UI中,我有POST和PUT方法,它们都将POJO作为REST调用中的body参数。当我查看UI并单击Model Schema以自动填充参数框时(只是为了节省输入整个JSON的时间),它不包含参数的名称,因此请求失败。例如:

模型架构:

{ 
   "first": "string",
   "last": "string",
   "address": "string",
   "email": "string",
   .
   .
   .
}

但是,要发出请求,我需要包含参数名称entry,如下所示:

{ "entry": {
   "first": "string",
   "last": "string",
   "address": "string",
   "email": "string",
   .
   .
   .
}}

虽然在提出请求之前自己做这件事并不太不方便,但是它引起了其他开发人员在我的应用程序中使用Swagger UI而没有意识到他们需要添加entry的问题。有没有办法修改模型架构?

1 个答案:

答案 0 :(得分:2)

参数的name未用作body参数中的属性。为了描述您的模型,您可以使用entry类型定义object属性,如下所示:

definitions:
  Entry:
    type: object
    properties:
      entry:
        type: object
        properties:
          first: 
            type: string
          last:
            type: string
          address:
            type: string
          email:
            type: string

您可以将它用作身体架构,如下所示:

post:
  produces:
    - application/json
  parameters:
    - name: body
      in: body
      schema:
        $ref: '#/definitions/Entry'