我正在使用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"
我用注释做的所有招摇文件。但我找不到执行此按钮的注释。 你能帮我找一下这个注释吗?
谢谢!
答案 0 :(得分:4)
我用过:
@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"));
答案 1 :(得分:0)
Swagger REST API操作注释@ApiOperation也具有以下属性:授权。可以将此属性设置为{@Authorization(value =“ AuthName”)}