gpt4 book ai didi

java - 如何使用 Guice + Jersey + servlet 将 Swagger 集成到 Java 项目中并自动生成 REST API 文档

转载 作者:行者123 更新时间:2023-11-30 06:05:11 27 4
gpt4 key购买 nike

我有一个使用 Guice 和 Jersey 提供 REST 服务的应用程序。如何在 Guice 中配置 Swagger?我已经有以下依赖项:

compile group: 'io.swagger', name: 'swagger-jersey2-jaxrs', version: '1.5.0'

如何自动生成 API 文档?遇到类似问题的人请详细说明此集成。非常感谢!

类似的指导:

public class ServletContextListener extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
if(lifecycleInjector != null) return lifecycleInjector;
this.lifecycleInjector = InjectorBuilder
.fromModules(defineModules())
.createInjector(Stage.DEVELOPMENT);
return this.lifecycleInjector;
}

private List<Module> defineModules() {
ArrayList<Module> modules = new ArrayList<>();
modules.add(new ServletModule());
return modules;
}
}

JerseyServletModule 如下:

public class ServletModule extends JerseyServletModule {
@Override
protected void configureServlets() {
bind(GuiceContainer.class).to(GovernatorServletContainer.class).asEagerSingleton();
serve("/api/*").with(GuiceContainer.class);
}
@Provides
ResourceConfig getResourceConfig() {
final List<String> resources = new ArrayList<>();
resources.add("com.fasterxml.jackson.jaxrs.json");
final String[] arrayPackages = new String[resources.size()];
resources.toArray(arrayPackages);
return new RestApp(ImmutableMap.<String, Object>builder()
.put(PROPERTY_PACKAGES, arrayPackages)
.put(FEATURE_DISABLE_WADL, "true")
.build());
}
@SwaggerDefinition(tags = {@Tag(name = "app API", description = "Administrative API for app")})
@ApplicationPath(RestApp.BASE_REST_APP_URI)
public class RestApp extends PackagesResourceConfig {
public static final String BASE_REST_APP_URI = "/api";
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<>();
classes.add(AppRestResource.class);
return classes;
}
}

如何添加 Swagger?

最佳答案

首先感谢您,我已经解决了这个问题。样本为sample of guice-jersey-swagger

关于java - 如何使用 Guice + Jersey + servlet 将 Swagger 集成到 Java 项目中并自动生成 REST API 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51490353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com