【问题标题】:Swagger annotation to get authorize buttonSwagger 注释以获取授权按钮
【发布时间】:2017-03-06 15:48:56
【问题描述】:

我正在使用 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"

我用注释做的所有招摇的文档。但我找不到执行此按钮的注释。 你能帮我找到这个注释吗?

谢谢!

【问题讨论】:

  • 找到解决方案了吗?
  • 通过在@SwaggerDefinition 中添加字段。我会在周日更新答案

标签: java annotations swagger swagger-ui


【解决方案1】:

我用过:

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

然后我在 Swagger-UI 中获得了一个“授权”按钮。 我检查了它做了什么——它调用了一个方法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"));

【讨论】:

  • @tisbar 有帮助吗?
  • 不确定@tisbar,但你肯定帮助了我。救了我几天的挫败感,谢谢!
【解决方案2】:

Swagger REST API 操作注解@ApiOperation 还采用以下属性:授权。该属性可以设置为 {@Authorization(value = "AuthName")}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 2019-07-30
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2020-04-04
    相关资源
    最近更新 更多