Open API 3.0.1 только для чтения Аннотация - PullRequest
0 голосов
/ 07 февраля 2020

У меня возникли некоторые проблемы с аннотациями Open API 3.0.1 java для определения свойства как readOnly для указанного метода c. Во время операции POST API ожидает модель NewAccount. Вот усеченное представление модели:

{
    "user": {
        "id": "...",
        ...
    },
    "account": {
        "id": "...",
        ...
    }
}

Мне нужно определить user.id и account.id как readOnly в этой операции. Все мои документы генерируются из кода с помощью аннотаций, и это то, что я до сих пор;

    @POST
    @Path("/access/accounts")
    @Consumes("application/json")
    @Operation(
            summary = "Create a new account.",
            description = "Create a new account."
    )
    @Tags({@Tag(name = "account")})
    @RequestBody(
            description = "New accounts required models.",
            required = true,
            content = @Content(
                    schema = @Schema(
                            implementation = NewAccount.class
                    )
            )
    )
    @ApiResponses({
            @ApiResponse(
                    responseCode = "201",
                    description = "The new account.",
                    content = @Content(
                            schema = @Schema(
                                    implementation = Account.class
                            )
                    )
            )
    })

1 Ответ

0 голосов
/ 07 февраля 2020

Вам необходимо добавить аннотацию @Schema(accessMode = Schema.AccessMode.READ_ONLY) к свойству id. Это будет помечать свойство id как readOnly: true в сгенерированном определении OpenAPI.

Пример отсюда :

import io.swagger.v3.oas.annotations.media.Schema;

public class ReadOnlyFields {
    @Schema(accessMode = Schema.AccessMode.READ_ONLY)
    public Long id;
}
...