Использование Swagger + Java REST API - PullRequest
0 голосов
/ 31 октября 2019

Как я могу аннотировать мой REST API, требующий аутентификации пользователя, чтобы страница сваггера правильно отображала входные данные?

Итак, вот мой код Java:

@ApiOperation(
        value = "Requires Authentication. Updates a user",
        notes = "Requires Authentication. Updates a user",
        response = BaseResponse.class
)
@Path("/updateUser")
@POST
public BaseResponse updateUser(@Auth UserPrincipal userPrincipal, @ApiParam(value = "user request", required = true) User userRequest) {

Однако это виднов swagger как:

enter image description here

Какие дополнительные аннотации мне нужно добавить в мой метод REST для работы?

1 Ответ

0 голосов
/ 02 ноября 2019

Хорошо, по крайней мере, с dropwizard-swagger, который поддерживает OpenAPI v2, используйте эти аннотации над классом:

@SwaggerDefinition(securityDefinition = @SecurityDefinition(
        apiKeyAuthDefinitions = {
                @ApiKeyAuthDefinition(key = "custom",
                        name = "authorization",
                        in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER,
                        description = "Bearer Authentication")}))

И над методом укажите ссылку на безопасность:

@ApiOperation(authorizations = @Authorization("custom"),
            value = "Requires Authentication. Returns dashboard",
            notes = "Requires Authentication. Returns dashboard",
            response = ResultResponse.class
    )
    @Path("/getDashboard")
    @POST
    public ResultResponse getDashboard(@Auth @ApiParam(hidden = true) APIKeyPrincipal apiKeyPrincipal,
                                                 @ApiParam(value = "Calculator Request", required = true) CalculatorRequest req) {

Ееважно добавить @ApiParam (hidden = true), чтобы он не отображался в пользовательском интерфейсе Swagger.

В пользовательском интерфейсе Swagger вы должны увидеть значок замка, где вы вводите данные. Не забудьте также указать имя токена на предъявителя, например, «Несущий». Теперь вы также должны увидеть значок замка рядом с API, и вы можете проверить его.

...