Swagger не может документировать на root ресурсе - PullRequest
0 голосов
/ 23 января 2020

Swagger намеренно пропускает методы, у которых относительный путь эквивалентен его «родительскому». Как я могу включить метод в документацию, которая сопоставлена ​​с контекстом root приложения? Добавление @Path ("/") к методу не решило проблему. jax rs jboss

@ApplicationPath("/")
public class Application extends javax.ws.rs.core.Application {

    public Application() {

    }

    @Override
    public Set<Class<?>> getClasses() {
        return Stream.of(PersonService.class, OpenApiResource.class, AcceptHeaderOpenApiResource.class)
                .collect(Collectors.toSet());
    }
}
@Path("/")
@OpenAPIDefinition( tags = { @Tag (name = "persons") } ,info = @Info (title = "Person API",version = "1.0.0"))
public class PersonService {

   @GET
   @Path("/person")
   @Produces(MediaType.APPLICATION_JSON)
   public Person getPerson() {
       return new Person("1","person");
   }


   @GET
   @Produces(MediaType.APPLICATION_JSON)
   public Person getPersonById(@PathParam("petId") String id) {

       return new Person("2","person2");
   }

произведенный openapi. json is

{"openapi":"3.0.1","info":{"title":"Person API","version":"1.0.0"},"tags":[{"name":"persons"}],"paths":{"/person":{"get":{"operationId":"getPerson","responses":{"default":{"description":"default response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Person"}}}}}}}},"components":{"schemas":{"Person":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}
...