Swagger是一个风行的API文档跟交互式测试东西,它可能帮助开辟者轻松地创建、测试跟文档化RESTful API。本文将为你供给一个单方面的Swagger设置攻略,帮助你从入门到粗通。
Swagger是一个基于OpenAPI标准的东西集,用于描述、生成、测试跟文档化RESTful API。它可能帮助开辟者疾速创建API文档,并供给一个交互式的API测试界面。
对.NET Core项目,可能经由过程NuGet担保理器安装Swagger:
Install-Package Swashbuckle.AspNetCore
在Startup.cs文件中,设置Swagger旁边件:
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
在Startup.cs文件中,可能经由过程SwaggerGen设置API的基本信息:
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1", Description = "这是一个示例API" });
});
}
Swagger支撑多种接口抉择器,如:
RequestHandlerSelectors.basePackage("com.xxx.xxx")
:扫描指定包下的接口。RequestHandlerSelectors.any()
:扫描全部接口。Swagger支撑多种道路抉择器,如:
PathSelectors.any()
:婚配全部道路。PathSelectors.regex("^(?!/api/).*$")
:婚配全部非/api/扫尾的道路。为了更好地管理API文档,可能将接口分组:
@Bean
public Docket createRestApi()
{
return new Docket(DocumentationType.OAS30)
.apiInfo(apiInfo())
.groupName("全部")
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxx.xxx"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo()
{
return new ApiInfoBuilder()
.title("标题:xxx体系接口文档")
.description("这是一个示例API")
.version("v1")
.build();
}
Swagger支撑文件上传功能,可能经由过程以下方法实现:
[HttpPost("upload")]
public IActionResult UploadFile(IFormFile file)
{
// TODO: 保存文件
return Ok();
}
Swagger支撑参数验证功能,可能经由过程以下方法实现:
[HttpPost("create")]
public IActionResult Create([FromBody] MyModel model)
{
// TODO: 创建数据
return Ok();
}
经由过程本文的介绍,信赖你曾经对Swagger有了更深刻的懂得。Swagger是一个功能富强的API文档跟测试东西,可能帮助开辟者疾速创建、测试跟文档化RESTful API。盼望本文能帮助你轻松上手Swagger,并在现实项目中发挥其上风。