ASP.NET CoreWeb ApiSwagger引出问题有的时候我们编写了一个API项目,但是没有太多时间来编写接口文档,这个时候会增加与消费者(API)调用者的沟通成本,这个时候Swagger的使用就很有必要了. 在Asp .Net Core Web API 中使用Swagger在WebApi,所在的项目中,通过Nuget安装SwashBuckle.AspNetCore 包,此包依赖如下包: SwashBuckle.AspNetCore.Swagger SwashBuckle.AspNetCore.SwaggerGen SwashBuckle.AspNetCore.SwaggerUI SwashBuckle.AspNetCore.ApiDescription.Server
在Startup.cs 类的ConfigureServices 方法中配置如下注入:
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPI项目的含义名称", Version = "v1" });
//添加中文注释
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
var commentsFileName = typeof(Program).Assembly.GetName().Name ".XML";
var xmlPath = Path.Combine(basePath, commentsFileName);
options.IncludeXmlComments(xmlPath);
//添加Model类的注释
var modelFileName = "Leisure.BabakuaiBus.DtoModels.xml";
var modelXmlPath = Path.Combine(basePath, modelFileName);
options.IncludeXmlComments(modelXmlPath);
options.DocInclusionPredicate((docName, description) => true);
});
3.在Startup.cs 类的Configure 方法中,启用如下中间件: app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "CIT WebAPI v1");
});
到此在项目中应用Swagger的过程基本完成,是不是很简单,下面启动服务看效果:  Swagger页面在接口中显示文档描述有的时候我们需要再Swagger文档中显示接口描述,那么我们应该怎么做呢? 我们在项目中首相需要给接口,以及实体类加上C#文档注释(必须要现有文档注释). 生成操作如下:
 Swagger可以显示的接口文档此处需要 注意 一点,如果我们也想让输入输出参数的文档注释也显示再Swagger 中那么我们也需要将输入输出参数实体类所在的项目,也需要生成XML文档文件 ,并且我们需要将生成好的文档文件放到Asp .Net Core运行所在的目录中. 在Swagger文档中过滤接口有的时候有的接口我们并不想将整个项目下的所有API接口都显示再Swagger文档中,暴露给消费者,那么我们应该怎么做呢? 很简单,我们只需要再不想暴露出来的Action上加上特性[ApiExplorerSettings(IgnoreApi = true)] 即可. 示例代码: [HttpGet]
[ApiExplorerSettings(IgnoreApi = true)]
public ActionResult Index(string appKey , string userName ,string userPwd)
{
//todo
}
参考文章地址: 在.NetCore WebApi中过滤Swagger文档显示接口方法 使用Swagger的其它注意事项: 方法名相同的报错来源:https://www./content-4-687251.html
|