как название) и не нарушает Codegen.
ался добавить примеры к моему Swagger API в соответствии софициальные документы (см. последний кодовый блокПримеры тела запросов и ответов) но это не похоже на работу, как ожидалось.
Рассматривая следующий минимальный пример:
swagger: "2.0"
info:
description: Desc
version: "1"
title: Title
paths:
/stuff:
post:
produces:
- application/json
responses:
201:
description: It worked
content:
application/json:
schema:
$ref: "#/definitions/StatusMessage"
examples:
Success without message:
value:
code: "00000"
Success with message:
value:
code: "00000"
message: "All right"
definitions:
StatusMessage:
type: object
description: Response with code and optional message
properties:
code:
type: string
message:
type: string
required:
- code
Я хочу предоставить пример ответов, один с необязательным свойствомmessage
настоящее, а другое без. Однако вышеупомянутый файл YAML дает неправильные результаты в сгенерированном классе API:
@ApiOperation(value = "", nickname = "stuffPost", notes = "", tags={ })
@ApiResponses(value = {
@ApiResponse(code = 201, message = "It worked") })
@RequestMapping(value = "/stuff",
method = RequestMethod.POST)
default ResponseEntity<Void> stuffPost() { /*default implementation*/ }
produces
свойство отсутствует и тип возвращаемого значения неправильный! Кроме того, это не компилируется вSwagger Editor:responses
свойствоshould NOT have additional properties
.
Я изменил его, чтобы получить «действительный» пример в редакторе Swagger, но сгенерированный код также неверен. Смотри ниже:
paths:
/stuff:
post:
produces:
- application/json
responses:
201:
description: It worked
schema:
$ref: "#/definitions/StatusMessage"
examples:
Success without message:
code: "00000"
Success with message:
code: "00000"
message: "All right"
Сгенерированный метод:
@ApiOperation(value = "", nickname = "stuffPost", notes = "", response = StatusMessage.class, tags={ })
@ApiResponses(value = {
@ApiResponse(code = 201, message = "It worked", response = StatusMessage.class) })
@RequestMapping(value = "/stuff",
produces = { "application/json", "Success without message", "Success with message" },
method = RequestMethod.POST)
default ResponseEntity<StatusMessage> stuffPost() { /*default implementation*/ }
На этот разproduces
собственность есть, но полностью выключена!
Как я могу заставить это работать? Это работает, если я использую вторую версию сapplication/json
в качестве ключа для заголовка примера, но это мешает мне добавить больше примеров из-за дублированного ключа.