我在做一个springboot项目。我们先做API,所以我们从API生成代码。亚马尔。我们正在使用openapi 3.0。界面生成得很好,但当我们浏览到我们的招摇过市的ui URL时,它说规范中没有定义任何操作!
详情如下:
@Configuration
@RequiredArgsConstructor
@EnableSwagger2
public class SwaggerConfig {
private final BuildProperties buildProperties;
@Bean
public Docket docketConfig() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors
.basePackage("com.xyz.infrastructure.rest.spring.resource"))
.build().apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(buildProperties.getName())
.version(buildProperties.getVersion())
.build();
}
}
我们的结构是:
com.xyz.infrastructure.rest.spring|||-config|-SwaggerConfig|-spec//自动生成|-dto//自动生成|-在spec中找到的接口的资源//实现
我们错过了什么?
我们正在使用:
<dependency>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen</artifactId>
<version>3.0.21</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
谢谢你!
我们终于成功了。以下是为我们做到的:
Springfox版本3:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
使用io。大摇大摆科德根。v3插件。
这个昂首阔步的配置:
@Configuration
@EnableOpenApi
public class SwaggerConfig {
@Bean
public Docket docketConfig() {
return new Docket(DocumentationType.OAS_30)
.select()
.apis(RequestHandlerSelectors
.basePackage("com.xyz.infrastructure.rest.spring.resource"))
.build();
}
}
并确保资源中的类具有@RestController注释。
我以前是这样的:
@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
//.apis(RequestHandlerSelectors.any())
.apis(RequestHandlerSelectors.basePackage("uz.xb.qr_project"))//*** base package
.paths(PathSelectors.any())
.build()
.apiInfo(metaData());
}
private ApiInfo metaData() {
return new ApiInfoBuilder()
.title("Spring Boot REST API")
.description("\"Spring Boot REST API for Online Store\"")
.version("1.0.0")
.license("Apache License Version 2.0")
.licenseUrl("https://www.apache.org/licenses/LICENSE-2.0\"")
.contact(new Contact("John Thompson", "https://springframework.guru/about/", "john@springfrmework.guru"))
.build();
}
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")//**address of swagger ui
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
ApiController.java
@RestController
@RequestMapping
public class ApiController {
@Autowired
private ApiService apiService;
@GetMapping
public String swagger(){
return "<!DOCTYPE html>\n" +
"<html lang=\"en\">\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <title>REST API LIST</title>\n" +
" <meta http-equiv=\"refresh\" content=\"0; url=/qr_online/swagger-ui.html\" />\n" +
"</head>\n" +
"<body>\n" +
"<a href=\"qr_online/swagger-ui.html\">REST API LIST</a>\n" +
"</body>\n" +
"</html>";
}
//Or you can use like this inside controller
/*
@GetMapping
public void redirect(HttpServletResponse response) throws IOException {
response.sendRedirect("swagger-ui.html");
}
*/
}
波姆。xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
我有一个Spring Boot应用程序,其中API被指定为OpenAPI 3.0.2 YAML文档。我使用openapi生成器maven插件从规范生成代码http://localhost:8080/swagger-用户界面。html,它显示:“规范中未定义任何操作!” 在规范中,我有: 这导致控制器类中出现以下情况: 如果我加载openapi定义。编辑亚马尔。大摇大摆io,它显示了预期的定义。 如
我有一个具有两个endpoint的控制器类 一个有一个参数,一个没有,两者都起作用。 如果我使用curl或web浏览器访问endpoint http://localhost:8081/test 返回 无参数测试 和 http://localhost:8081/test?param=1 返回 参数测试 但是,swagger ui只显示没有参数的用户界面。 如果我使用参数将请求的请求映射中的值更改为
问题内容: 我有使用Java的JAX-RS / Jersey开发的REST API。我想为其转换/生成基于Swagger的UI文档。有人可以简单的方式告诉我精确的步骤吗?很抱歉,他们网站上的步骤对我来说并不清楚。 问题答案: 有几种方法可以将swagger-core与您的应用程序集成,但是根据您的描述,我将按照https://github.com/swagger- api/swagger-core
我有一个spring的网络应用程序,我增加了swagger和swagger-UI。我添加了一个虚拟类来测试Swagger: 构建/部署之后,我可以在swagger页面上看到虚拟类(参见附件1)。问题是,“列表操作”没有显示任何内容。原始输出如下: 我想,问题是一个缺失的标签“操作”或类似的东西……但我不确定(也不知道,如何修复这一点)。有什么建议吗?
我正在尝试使用 https://github.com/swagger-api/swagger-codegen 生成 nodejs 客户端 sdk 这是我使用的命令 但是对于我需要生成的实际sdk,swagger规范被拆分为两个不同的json文件,我想为两者创建一个sdk。我如何使用Swagger-codecen做到这一点,同时使用多个swagger json?
我正在努力创建rest客户端,我将调用一个API来提供这个大的json输出。我想知道如何通过输入这个json来自动创建Pojo类来晃动代码gen,并让它为我创建我的pojo类,这将节省手动时间。这是我尝试过的 要为生成PHP客户端,请执行以下操作:http://petstore.swagger.io/v2/swagger.json,请运行以下命令: (如果您使用的是Windows,请将最后一个命令