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"}}}}}}