Все онлайн-учебники говорят, что вы должны поместить папку «dist» из пользовательского интерфейса Swagger под «WebContent», чтобы получить интерфейс Swagger.Setup Swagger UI на Джерси Grizzly
Но что, если у меня нет «WebContent» ?!
Приложение Jersey-Jaxrs-RESTful работает правильно на встроенном сервере Grizzly.
У меня есть Swagger правильно настроен, и когда я перехожу на localhost:9998/swagger.json
Я вижу всю документацию API в формате JSON. Теперь все, что я хочу, это интерфейс Swagger для отображения этих данных JSON на хорошей HTML-странице.
Мой вопрос в том, как настроить этот интерфейс Swagger без папки WebContent и файла web.xml.
Вот моя конфигурация JS для index.html
, чтобы начать интерфейс Swagger; url=http://localhost:9998/api/api-docs/swagger.json
Моя конфигурация Применение:
@ApplicationPath("api")
public class ResConfig extends Application {
public ResConfig() {
super();
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.2");
beanConfig.setSchemes(new String[] { "http" });
beanConfig.setHost("localhost:9998");
beanConfig.setBasePath("/api");
beanConfig.setResourcePackage("test.resources");
beanConfig.setScan(true);
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new HashSet<Class<?>>();
resources.add(Res.class);
resources.add(CrossDomainFilter.class);
resources.add(io.swagger.jersey.listing.ApiListingResourceJSON.class);
resources.add(io.swagger.jaxrs.listing.ApiListingResource.class);
resources.add(io.swagger.jaxrs.listing.SwaggerSerializers.class);
return resources;
}
}
public class CrossDomainFilter implements ContainerResponseFilter {
public CrossDomainFilter() {
}
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
responseContext.getHeaders().add("Access-Control-Allow-Headers", "");
responseContext.getHeaders().add("Access-Control-Allow-Credentials", "");
responseContext.getHeaders().add("Access-Control-Allow-Methods", "");
responseContext.getHeaders().add("Access-Control-Max-Age", "");
}
}
Был открытым вопрос об этой проблеме в https://github.com/swagger-api/swagger-core/issues/958; однако он не был разрешен.