2

I want to group this annotation:

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

})

in a single annotation @ResponseCodes to shorten it. I've found this SO Question which basically has the same problem. The solution in this thread is creating a custom annotation which would look like this in my case:

@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 {
}

However when i try this i get the error message that @ApiResponses is disallowed in this location.

Any suggestions?

NicO
  • 591
  • 2
  • 8
  • 21

1 Answers1

0

I solved this problem by changing the dependency version to 2.9.2, getting this way:

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

Annotation result:

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 {
 
 

}
  • Im not working on this project anymore, so i cant check if this works for me. I think however, i already had version 2.9.2 – NicO Jul 17 '19 at 09:28