Редактор Swagger несколько параметров в теле
поэтому я понимаю, что если мы хотим параметры тела, мы должны иметь схему, что я и делаю. Проблема в том, как я пытаюсь определить свою схему, она не позволяет мне иметь несколько параметров тела. Вот пример одного из методов, которые я пробовал. Любая помощь будет здорово!
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"
2 ответов
Я не уверен, что понял ваш вопрос...
- если вы пытаетесь определить более одного параметра тела для одной операции, вы не можете. Как объясняется в спецификация swagger :
тело [...] может быть только один параметр тела
- если вы пытаетесь отправить тело с несколькими параметрами, добавьте объектную модель в раздел определения и обратитесь к ней в параметре тела, см. ниже (работает с редактор.свэггер.Ио:
вы примеры узлов также ошибаетесь, см. здесь для получения более подробной информации.
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
вы также можете определить свойства параметра тела запроса, используя properties
как часть его schema
. Это имеет хороший пример под полезной нагрузкой объекта: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
недостатком, конечно, является то, что вы не получаете повторного использования определения объекта, но иногда определение объекта не подходит.