WebApi(2)—帮助文档

微软自带的Microsoft Help Page帮助文档这边就不做介绍了,这边要介绍的是Swagger

  1. 在Nuget添加Swashbuckle组件。


  2. 修改配置文件生成位置,指定输出xml


  3. 修改配置文件
    修改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 { }
    /// 
    /// 隐藏接口Swagger显示
    /// 
    public class HiddenApiFilter : IDocumentFilter
    {
        public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
        {
            foreach (ApiDescription apiDescription in apiExplorer.ApiDescriptions)
            {
                if (Enumerable.OfType(apiDescription.GetControllerAndActionAttributes()).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

接着就是在不需要显示出去的接口中增加特性[HiddenApi]即可。

你可能感兴趣的:(WebApi(2)—帮助文档)