Kassarn
6 years agoFrequent Visitor
How to document resource at base path of application
Hello , i have java project using resteasy services and basic swagger config via application class. When i access openapi.json file at my applicaiton url its seem swagger skip to document the method which is on root path "/". I have this problem when the base path is "/". My generated json file is bellow with the dependancy i use and sample code:
I ll be glad if somoene help!
@ApplicationPath("/")
public class Application extends javax.ws.rs.core.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") ,servers = @Server(url = "/"))
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" : "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"
}
}
}
}
}
}<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-jaxrs2</artifactId>
<version>2.0.8</version>
</dependency>