Невозможно указать желаемое содержимое массива Swagger ApiResponse для конечной точки контроллера с использованием аннотаций - PullRequest
0 голосов
/ 01 ноября 2019

Я использую Swagger (io.swagger.v3.oas.annotations) с Micronaut и пытаюсь задокументировать массив определенного типа как ответ конечной точки, но он не работает. Мой код соответствует документации Swagger 2.x следующим образом:

@Post(uri = '/compute', consumes = MediaType.APPLICATION_JSON)
@Operation(summary = "Get nodes")
@ApiResponse(responseCode = "200",
            description = "You got it",
            content = @Content(
                    mediaType = "application/json",
                    array = @ArraySchema(schema = @Schema(implementation = ActionableNodeDTO.class))
            )
)
HttpResponse<List<ActionableNodeDTO>> getNodes(@Body List<NodeActionDTO> nodeActions) {
    def actionableNodeDTOs = nodeActionIngestService.processBasic(nodeActions)
    HttpResponse.ok(actionableNodeDTOs)
}

Это Groovy. Я попытался использовать ActionableNodeDTO вместо ActionableNodeDTO.class и просто HttpResponse в качестве типа возвращаемого значения функции, но безрезультатно.

Предупреждение о времени компиляции, которое я получаю:

Error reading Swagger ApiResponses for element [io.micronaut.ast.groovy.visitor.GroovyMethodElement@e65e526]: Cannot construct instance of 'io.swagger.v3.oas.models.media.MediaType' (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value

Я не уверен, что делать с этим сообщением. Что мне здесь не хватает?

...