Аннотация Swagger для получения кнопки авторизации

Я использую swagger для документирования своего java REST API. X-Auth-Token следует отправлять в заголовке каждого API (кроме одного). Хотелось бы иметь кнопку как в зоомагазине V2 авторизации. Можно найти здесь: http://petstore.swagger.io/

Я понял, что он определен в файле jason\yaml, созданном с помощью swagger. Если быть точным, то в yaml это делается так:

securityDefinitions:
  petstore_auth:
    type: "oauth2"
    authorizationUrl: "http://petstore.swagger.io/oauth/dialog"
    flow: "implicit"
    scopes:
      write:pets: "modify pets in your account"
      read:pets: "read your pets"
  api_key:
    type: "apiKey"
    name: "api_key"
    in: "header"

Всю свою чванливую документацию я делал с аннотациями. Но я не смог найти аннотацию, которая делает эту кнопку. Не могли бы вы помочь мне найти эту аннотацию, пожалуйста?

Благодарю вас!


person sosolo    schedule 06.03.2017    source источник
comment
Вы когда-нибудь находили решение?   -  person Sara Tibbetts    schedule 05.04.2017
comment
Добавив поле в @SwaggerDefinition. Я обновлю ответ в воскресенье   -  person sosolo    schedule 06.04.2017


Ответы (2)


Я использовал:

@SwaggerDefinition(securityDefinition = @SecurityDefinition(apiKeyAuthDefinitions = {@ApiKeyAuthDefinition(key = "X-Auth-Token",
    in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER, name = "X-Auth-Token")}))

Затем я получил кнопку «Авторизованный» в пользовательском интерфейсе Swagger. Я проверил, что он сделал - он вызвал метод self.api.clientAuthorizations.add, когда `self = window.swaggerUi;'.

Итак, наконец, я сделал автоматическую авторизацию, вызвав вызов ajax, вернув токен и вызвав этот метод:

self.api.clientAuthorizations.add('X-Auth-Token',
                  new SwaggerClient.ApiKeyAuthorization("X-Auth-Token", Object.keys(response).map(function (key)
                  { return response[key]}), "header"));
person sosolo    schedule 27.04.2017
comment
@tisbar помог? - person sosolo; 27.04.2017
comment
Не уверен насчет @tisbar, но ты мне определенно помог. Сэкономил мне несколько дней разочарования, спасибо! - person Shawn; 21.06.2017

Аннотация операции Swagger REST API @ApiOperation также принимает следующий атрибут: авторизации. Для этого атрибута можно установить значение {@Authorization(value = "AuthName")}

person ezzadeen    schedule 29.10.2019