Skip to content

Is there any way to use something like List.class?

I’m using SpringBoot with OpenAPI and SwaggerUI to implement a rest api. I want to annotate a @GetMapping method with @ApiResponses to provide the schema of the response, but I’m struggling with the parameter implementation of @Schema. The return type of my method is List<ScanDTO>, so I tried the following:

@ApiResponses( value = {
            @ApiResponse(content = {@Content(schema = @Schema(implementation = List<ScanDTO>.class))})

But this doesn’t work. Things like ScanDTO.class would work. The implementation argument is of type Class<?>.

My workaround would be to create a wrapper class like the following:

public interface ScanDTOList extends List<ScanDTO> {

and use it. It seems to be working, but I think I wont need that additional class in the future, so I am wondering, if there is any way to get this working without this workaround.



Using ArraySchema should solve this for you

    content = {@Content(
        array = @ArraySchema(schema = @Schema(implementation = ScanDTO.class))
8 People found this is helpful