Я хочу определить значение перечисления в параметре строки запроса функции в спецификации OpenAPI.
Вот пример того, как я указываю параметр в моей спецификации OpenAPI (yaml):
openapi: 3.0.0
info:
description: Vends sodas
version: 1.0.0
title: VendingMachineService
paths:
/soda/{bill}:
get:
summary: Provides a soda for a provided amount of money
description: Provides a soda for a provided amount of money
operationId: getSoda
parameters:
- name: bill
in: path
description: Money (e.g. one, two, five)
required: true
schema:
$ref: "#/components/schemas/Bill"
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/Result"
"404":
description: Templates for Source not found
servers:
- url: http://localhost:8080/
components:
schemas:
Bill:
type: string
enum:
- one
- two
- five
Result:
type: string
Ключевой частью спецификации OpenAPI является то, что я определяю перечисление в объекте схемы внизу, печатаю строку и ссылаюсь на него в разделе параметров функции, также определяя его как часть пути/ {bill}
Затем я использую openapi-generator для генерации пружинного сервера:
openapi-generator generate -i ~/vending-machine.yaml -g spring -o ~/output
Затем я раскручиваю сервер (импортирую проект в Intellij и запускаю в подпружиненной загрузке)конфигурации) и перейдите к localhost: 8080 /, чтобы открыть интерфейс Swagger.Я пытаюсь использовать API и получаю следующую ошибку:
{"timestamp": "2019-03-29T15: 43: 14.737Z", "status": 400,
"error":" Bad Request "," message ":" Не удалось преобразовать значение типа 'java.lang.String' в требуемый тип 'org.openapitools.model.Bill'; вложенным исключением является org.springframework.core.convert.ConversionFailedException: Не удалось преобразовать тип [java.lang.String] в тип [@ javax.validation.constraints.NotNull @ io.swagger.annotations.ApiParam @ javax.validation.Valid @ org.springframework.web.bind.annotation.RequestParamorg.openapitools.model.Bill] для значения 'null'; вложенным исключением является java.lang.IllegalArgumentException: нет константы перечисления org.openapitools.model.Bill.null "," path ":" / soda /% 7Bbill% 7D "}
(501 не реализовано, ожидается)
Как правильно определить параметры запроса и перечисление в спецификации OpenAPI для использования значений перечисления?