web-dev-qa-db-ja.com

Swagger Editorの本文の複数のパラメーター

したがって、ボディパラメータが必要な場合は、スキーマを作成する必要があることを理解しています。この問題は、スキーマをどのように定義しようとしても、複数のボディパラメータを持つことはできません。これは私が試した方法の1つの例です。どんな助けも素晴らしいでしょう!

swagger: '2.0'

# This is your document metadata
info:
  version: "0.0.1"
  title: Todo App
schema: {
        }
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:
        # An example parameter that is in query and is required
        -
          name: name 
          in: query
          description: unique object task name
          required: true
          schema:
            type: string
        - name: description
          in: query
          description: task description
          required: true
          schema:
            type: string

      responses:
        # Response code
        200: 
          description: Successful response
          # A schema describing your response object.
          # Use JSON Schema format
          schema:
              title: Return String
              type: string
              example: "Task added succesfully"
        500:
          description: Error
          schema: 
            type: string
            example: "Could not add Task"
30
Jacob Brauchler

あなたの質問を理解できるかどうかわかりません...

  • 1つの操作に対して複数のbodyパラメーターを定義しようとしている場合、できません。 swagger specification で説明されているとおり:

ボディ[...]ボディパラメータは1つしか存在できません

  • 複数のパラメーターを持つボディを送信しようとしている場合、定義セクションにオブジェクトモデルを追加し、ボディパラメーターでそれを参照します。以下を参照してください( 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
38
Nelson G.

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

もちろん、デメリットは、オブジェクト定義を再利用できないことですが、オブジェクト定義が適切でない場合があります。

5
GabeV