一.集成Swagger:
详情请看WebApi 集成 Swagger - 不负春光,努力生长 - 博客园 (cnblogs.com)
附加:
在SwaggerConfig文件中添加 c.DocumentFilter<HiddenApiFilter>(); 可屏蔽Swagger自身接口
HiddenApiFilter为新建的一个类,存放在App_Start下,内容:
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public partial class HiddenApiAttribute : Attribute { }
public class HiddenApiFilter : IDocumentFilter
{
public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
{
foreach (ApiDescription apiDescription in apiExplorer.ApiDescriptions)
{
var _key = "/" + apiDescription.RelativePath.TrimEnd('/');
// 过滤 swagger 自带的接口
if (_key.Contains("/api/Swagger") && swaggerDoc.paths.ContainsKey(_key))
swaggerDoc.paths.Remove(_key);
//隐藏具体Api接口 需要在想隐藏的api 上面添加特性[HiddenApi]
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);
}
}
}
}
二.跨域配置
1.在Web.config中<configuration>-<appSettings>中添加如下内容:
<add key="allowedOrigin" value="*" />
<add key="allowedHeaders" value="http://abc.com" />
<add key="allowedMethods" value="GET,PUT,POST" />
2.在WebApiConfig中应用 using System.Web.Http.Cors;
然后配置:
string allowedOrigin = ConfigurationManager.AppSettings["allowedOrigin"];
string allowedHeaders = ConfigurationManager.AppSettings["allowedHeaders"];
string allowedMethods = ConfigurationManager.AppSettings["allowedMethods"];
config.EnableCors(new EnableCorsAttribute(allowedOrigin, allowedHeaders, allowedMethods));