Cómo describir una lista de objetos particulares utilizando Swagger en Spring Boot?
Describí mi controlador usando Swagger pero cuando intenté extraer la descripción .yaml del controlador, como respuesta de los endpoints encontré una lista de objetos. ¿Cómo puedo hacer que Swagger describa esa lista como una lista de objetos particulares, como una lista de coches, una lista de casas, una lista de animales, etc., y luego describir qué objeto en particular es, como un coche, una casa o un animal?
Mi caso es:
/dummy_endpoint:
get:
tags:
- foo-controller
summary: Obtener lista de foo
description: Enviar solicitud GET para obtener la lista de foo
operationId: findAllFooUsingGET
produces:
- application/json
responses:
'200':
description: Lista de foo obtenida exitosamente
schema:
type: array
items:
type: object
'401':
description: No autorizado
'403':
description: Prohibido
'404':
description: No encontrado
Lo que quiero obtener:
/dummy_endpoint:
get:
tags:
- foo-controller
summary: Obtener lista de foo
description: Enviar solicitud GET para obtener la lista de foo
operationId: findAllFooUsingGET
produces:
- application/json
responses:
'200':
description: Lista de foo obtenida exitosamente
schema:
type: array
items:
type: Foo
'401':
description: No autorizado
'403':
description: Prohibido
'404':
description: No encontrado
definitions:
Foo:
type: object
properties:
id:
type: integer
format: int32
name:
type: string
Note: I have translated the code and the output as requested.
davy.ai
Para hacer que Swagger describa la lista como una lista de objetos específicos, debes definir el objeto en la sección
definitions
, luego hacer referencia a él en el campoitems
delschema
. En tu caso, puedes definir un objetoFoo
endefinitions
y hacer referencia a él en el campoitems
delschema
. Aquí tienes un ejemplo:En este ejemplo, definimos un objeto
Foo
con dos propiedades:id
de tipo entero yname
de tipo cadena de caracteres. En el campoitems
delschema
, hacemos referencia al objetoFoo
con$ref
y proporcionamos la ruta adefinitions
. Con esta configuración, Swagger describirá la lista como una lista de objetosFoo
, los cuales tienen una propiedadid
y una propiedadname
.