Swagger编辑体内的多个参数

时间:2015-06-24 17:41:40

标签: swagger swagger-editor

所以我明白,如果我们想要身体参数,我们必须有一个模式,我这样做。问题是无论我如何尝试定义我的架构,它都不允许我有多个body参数。这是我尝试过的方法之一的示例。任何帮助都会很棒!

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

2 个答案:

答案 0 :(得分:36)

我不确定你理解你的问题......

  • 如果您尝试为一个操作定义多个body参数,则不能。正如swagger specification
  • 中所述
  

Body [...]只能有一个body参数

  • 如果您尝试发送包含多个参数的正文,请在定义部分添加对象模型,并在body参数中引用它,请参阅下文(与editor.swagger.io一起使用):

您的示例节点也是错误的,有关详细信息,请参阅here

swagger: '2.0'
info:
  version: "0.0.1"
  title: Todo App
host: localhost:3000
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/x-www-form-urlencoded
basePath: /
paths:
  # This is a path endpoint. Change it.
  /tasks:
    post:
      description: |
        Add 'Task' object.
      parameters:
        - name: task 
          in: body
          description: task object
          required: true
          schema:
            $ref: '#/definitions/Task'
      responses:
        200:
          description: Successful response
          schema:
              title: Return String
              type: string
              example: "Task added succesfully"
        500:
          description: Error
          schema: 
            type: string
            example: "Could not add Task"
definitions:
  Task:
    description: Task object
    properties:
      name:
        type: string
        description: task object name
      description:
        type: string
        description: task description
    required:
      - name
      - description

答案 1 :(得分:5)

您还可以使用properties作为其schema的一部分来定义请求正文参数的属性。这在Object Payload下有一个很好的例子:https://swagger.io/docs/specification/2-0/describing-request-body/

paths:
  /users:
    post:
      summary: Creates a new user.
      consumes:
        - application/json
      parameters:
        - in: body
          name: user
          description: The user to create.
          schema:
            type: object
            required:
              - userName
            properties:
              userName:
                type: string
              firstName:
                type: string
              lastName:
                type: string
      responses:
        201:
          description: Created

当然,缺点是您没有重复使用对象定义,但有时候对象定义并不合适。