Swagger POST与非json身体

时间:2015-07-21 22:16:00

标签: api swagger

我正在定义一个使用非JSON主体POST的资源。它只是一个像表单参数的字符串。类似于OAuth的事情: grant_type =安培;代码=安培; REDIRECT_URI =

如何在Swagger上记录?我是否必须使用formParam格式而不是body?我放入体内的所有内容都转换为JSON示例。

  TokenRequest:
    properties:
      grant_type:
        type: string
        description: OAuth Grant Type
        enum:
        - authorization_code
        - refresh
      code:
        type: string
        description: Authorization Code obtained from /authorize required if grant_type = au
      redirect_uri:
        type: string
        description: Defined Redirect URI Example - https://example.com/callback
      refresh_token:
        type: string
        description: Required if grant_type = refresh

1 个答案:

答案 0 :(得分:1)

以下是有关如何记录表单数据的示例:

post:
  tags:
    - pet
  summary: Updates a pet in the store with form data
  description: ''
  operationId: updatePetWithForm
  consumes:
    - application/x-www-form-urlencoded
  produces:
    - application/xml
    - application/json
  parameters:
    - name: petId
      in: path
      description: ID of pet that needs to be updated
      required: true
      type: integer
      format: int64
    - name: name
      in: formData
      description: Updated name of the pet
      required: false
      type: string
    - name: status
      in: formData
      description: Updated status of the pet
      required: false
      type: string
  responses:
    '405':
      description: Invalid input
  security:
    - petstore_auth:
        - 'write:pets'
        - 'read:pets'

但在您的情况下,您似乎想要定义OAuth设置,因此请参阅Swagger Spec 2.0以获取更多信息。以下是PetStore的示例:

securityDefinitions:
  petstore_auth:
    type: oauth2
    authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
    flow: implicit
    scopes:
      'write:pets': modify pets in your account
      'read:pets': read your pets
  api_key:
    type: apiKey
    name: api_key
    in: header