【问题标题】:How to create grouped Swagger Annotations - Annotation disallowed for this location如何创建分组的 Swagger 注释 - 此位置不允许注释
【发布时间】:2019-03-06 11:45:34
【问题描述】:

我想对这个注解进行分组:

@ApiResponses(value= {
    @ApiResponse(
            code = 200, 
            message = "Successful status response"),
    @ApiResponse(
            code = 400, 
            message = "Successful status response"),
    @ApiResponse(
            code = 500, 
            message = "Successful status response"),

})

在单个注释@ResponseCodes 中缩短它。 我发现this SO Question 基本上有同样的问题。 这个线程中的解决方案是创建一个自定义注释,在我的例子中看起来像这样:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ApiResponses(value= {
        @ApiResponse(
                code = 200, 
                message = "Successful status response"),
        @ApiResponse(
                code = 400, 
                message = "Successful status response"),
        @ApiResponse(
                code = 500, 
                message = "Successful status response"),
})

public @interface ResponseCodes {
}

但是,当我尝试此操作时,我收到 @ApiResponses is disallowed in this location. 的错误消息

有什么建议吗?

【问题讨论】:

    标签: java spring swagger swagger-ui swagger-2.0


    【解决方案1】:

    我通过将依赖版本更改为2.9.2解决了这个问题,得到这样的方式:

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>

    标注结果:

    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    import io.swagger.annotations.ApiResponse;
    import io.swagger.annotations.ApiResponses;
    
    @ApiResponses(value = {
    		@ApiResponse(code = 200, message = STATUS_CODE_200), @ApiResponse(code = 204, message = STATUS_CODE_204),
    		@ApiResponse(code = 400, message = STATUS_CODE_400), @ApiResponse(code = 401, message = STATUS_CODE_401),
    		@ApiResponse(code = 403, message = STATUS_CODE_403), @ApiResponse(code = 404, message = STATUS_CODE_404),
    		@ApiResponse(code = 500, message = STATUS_CODE_500)
    })
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface WBossResponses {
    	
    	
    
    }

    【讨论】:

    • 我不再从事这个项目了,所以我无法检查这是否适合我。不过我想,我已经有了 2.9.2 版
    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多