que - swagger yaml example
Swagger Editor de múltiples parámetros en cuerpo. (2)
Entonces entiendo que si queremos parámetros de cuerpo tenemos que tener un esquema, lo cual hago. El problema es que no importa cómo intente definir mi esquema, no me permite tener varios parámetros de cuerpo. Aquí hay un ejemplo de uno de los métodos que he probado. Cualquier ayuda sería genial!
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"
No estoy seguro de entender su pregunta ...
- Si intenta definir más de un parámetro de cuerpo para una operación, no puede. Como se explica en la especificación swagger :
Cuerpo [...] solo puede haber un parámetro cuerpo
- Si intenta enviar un cuerpo con varios parámetros, agregue su modelo de objeto en la sección de definiciones y editor.swagger.io en su parámetro de cuerpo, vea a continuación (funciona con editor.swagger.io :
Los ejemplos de nodos también son incorrectos, consulte here para obtener más detalles.
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
También puede definir las propiedades del parámetro del cuerpo de la solicitud utilizando las properties
como parte de su schema
. Esto tiene un buen ejemplo en 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
La desventaja, por supuesto, es que no obtiene la reutilización de una definición de objeto, pero a veces una definición de objeto no es apropiada.