在Ubuntu上选择和配置Swagger(现通常称为OpenAPI Generator)的版本,可以按照以下步骤进行:
sudo snap refresh
sudo snap install swagger-ui
swagger
这将在默认浏览器中打开Swagger UI界面。
sudo apt update
sudo apt install nodejs npm
sudo npm install -g swagger-ui-express
mkdir swagger-demo
cd swagger-demo
npm init -y
npm install express --save
在项目根目录下创建一个名为 index.js 的文件,并添加以下内容:
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();
// 读取Swagger文档
const swaggerDocument = YAML.load('./swagger.yaml');
// 使用swagger-ui-express中间件
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
创建Swagger文档文件 swagger.yaml 并添加你的API文档。
启动应用:
node index.js
这将在浏览器中打开Swagger UI界面,地址为 http://localhost:3000/api-docs。
sudo apt update
sudo apt install docker.io
docker pull swaggerapi/swagger-ui-express
docker run -p 8080:8080 -e SWAGGER_JSON=/app/swagger.json -v $(pwd):/app swaggerapi/swagger-ui
确保你的 swagger.json 文件位于当前目录中。
在你的Spring Boot项目的 pom.xml 文件中添加Swagger相关的依赖。例如:
<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>
创建一个Java类来配置Swagger。例如,创建一个名为 SwaggerConfig.java 的文件:
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.yourpackage")) // 替换为你的控制器包路径
.paths(PathSelectors.any())
.build();
}
}
启动你的Spring Boot应用程序后,你可以通过浏览器访问Swagger UI界面。默认情况下,你可以通过以下URL访问:http://localhost:8080/swagger-ui.html。
在代码中建立一个 ApiVersions.cs 文件,用来设置版本。例如:
public enum ApiVersions {
V1,
V2,
V3
}
在 Program.cs 文件中修改相应的内容,添加版本控制。例如:
builder.Services.AddSwaggerGen(options => {
options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "API标题", Description = "API描述" });
options.SwaggerDoc("v2", new OpenApiInfo { Version = "v2", Title = "API标题", Description = "API描述" });
options.SwaggerDoc("v3", new OpenApiInfo { Version = "v3", Title = "API标题", Description = "API描述" });
foreach (string version in typeof(ApiVersions).GetEnumNames()) {
options.DocInclusion(version, true);
}
});
在 Startup.cs 中对 UseSwaggerUI 进行相应修改:
if (app.Environment.IsDevelopment()) {
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "API版本:v1");
c.SwaggerEndpoint("/swagger/v2/swagger.json", "API版本:v2");
c.SwaggerEndpoint("/swagger/v3/swagger.json", "API版本:v3");
});
}
在控制器文件里面添加版本控制特性:
[ApiExplorerSettings(IgnoreApi = false, GroupName = nameof(ApiVersions.V1))]
public class CompanyController : ControllerBase {
// V1版本的控制器代码
}
通过以上步骤,可以在Ubuntu上实现Swagger的版本控制。