首页 文章

Swagger POST与非json身体

提问于
浏览
0

我正在定义一个使用非JSON主体POST的资源 . 它只是一个像表单参数的字符串 . 类似于OAuth的情况:grant_type =&code =&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 回答

  • 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
    

相关问题