微软自带的Microsoft Help Page帮助文档这边就不做介绍了,这边要介绍的是Swagger
-
在Nuget添加Swashbuckle组件。
-
修改配置文件生成位置,指定输出xml
修改配置文件
修改SwaggerConfig.cs文件,将c.IncludeXmlComments(GetXmlCommentsPath());代码注释去掉。并在下方实现方法GetXmlCommentsPath()
private static string GetXmlCommentsPath()
{
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Api.xml");
}
至此,大功告成。
当然,接口的测试的话用Postman或者fiddler更方便些。
隐藏接口
项目中我们不一定想把所有的接口都给暴露出去,那就需要隐藏接口的显示。
首先创建一个类HiddenApiFilter继承IDocumentFilter接口
using Swashbuckle.Swagger;
using System.Linq;
using System.Web.Http.Description;
namespace MiLan.FinanceAPI
{
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Class)]
public partial class HiddenApiAttribute : System.Attribute { }
/// <summary>
/// 隐藏接口Swagger显示
/// </summary>
public class HiddenApiFilter : IDocumentFilter
{
public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
{
foreach (ApiDescription apiDescription in apiExplorer.ApiDescriptions)
{
if (Enumerable.OfType<HiddenApiAttribute>(apiDescription.GetControllerAndActionAttributes<HiddenApiAttribute>()).Any())
{
string key = "/" + apiDescription.RelativePath;
if (key.Contains("?"))
{
int idx = key.IndexOf("?", System.StringComparison.Ordinal);
key = key.Substring(0, idx);
}
swaggerDoc.paths.Remove(key);
}
}
}
}
}
然后在SwaggerConfig.cs中增加
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.SingleApiVersion("v","Mian.Fnane API" );
c.IncludeXmlComments(etXmlommetsPt h()) ;
c.DocumentFilter<HiddnApiFlter();//新增特性
})
接着就是在不需要显示出去的接口中增加特性[HiddenApi]即可。