在spring mvc中自定义swagger注释

时间:2015-04-15 08:13:56

标签: java spring swagger

我很高兴使用swagger为前端开发人员生成API文档。

但是如果我有一些方法需要在请求的标头中有一个Bearer令牌或其他东西。问题出来了,我必须在每个方法上重复复制和粘贴整个注释。它违反了DRY委托人,当我必须对Bearer令牌文档进行一些更改时,这将是一场灾难。

当前

@ApiImplicitParam(name="Authorization",value = "Bearer token",dataType = "string", paramType ="header")
public ResponseEntity<Void> doSth(){};

@ApiImplicitParam(name="Authorization",value = "Bearer token",dataType = "string", paramType ="header")
public ResponseEntity<Void> doSth2(){};

@ApiImplicitParam(name="Authorization",value = "Bearer token",dataType = "string", paramType ="header")
public ResponseEntity<Void> doSth3(){};     

我想要做的是创建一个继承自 @ ApiOauth2 的注释 @ApiImplicitParam(name =“Authorization”,value =“Bearer token”,dataType =“string”,paramType =“header”)并且可以通过招摇来识别

@ApiOauth2
public ResponseEntity<Void> doSth(){};

@ApiOauth2
public ResponseEntity<Void> doSth2(){};

@ApiOauth2
public ResponseEntity<Void> doSth3(){};

我搜索了注释无法扩展,我该如何实现这种方法?

1 个答案:

答案 0 :(得分:0)

尝试一下:

 @ApiImplicitParams({
 @ApiImplicitParam(
     name="Authorization",
     value = "Bearer token",
     dataType = "string", 
     paramType ="header")
})
public @interface ApiOauth2 {

}