首页 > 解决方案 > 如何创建分组的 Swagger 注释 - 此位置不允许注释

问题描述

我想将此注释分组:

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

})

在单个注释@ResponseCodes中以缩短它。我发现这个 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.

有什么建议么?

标签: javaspringswaggerswagger-uiswagger-2.0

解决方案


我通过将依赖版本更改为 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 {
	
	

}


推荐阅读