.NET WebAPI2 Swagger配置(包含Access-Token验证)

     记录一下,方便自己和朋友查找。。Swagger对于接口项目确实有很大的帮助。

效果:

 

 

 

一.WebApi中配置Swagger

 1.运行Nuget:添加Swashbuckle  和Swagger.Net.UI 第一个包就是啦

 

 

 

 2.修改一下API项目属性

 

 

 3.在App_Start文件夹下,修改SwaggerNet.cs:

 

 

 修改SwaggerConfig.cs:

 public class SwaggerConfig
    {
        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;

            GlobalConfiguration.Configuration
                .EnableSwagger(c =>
                    {
                        c.SingleApiVersion("v1", "BnWebApi");
                        //添加XML解析
                        c.IncludeXmlComments(GetXmlCommentsPath());

                        c.BasicAuth("basic").Description("Basic HTTP Authentication"); //取消注释是为了请求验证

                    })
                .EnableSwaggerUi(c =>
                    {
                        c.InjectJavaScript(thisAssembly, "BnWebApi.CustomContent.api-key-header-auth.js");//取消注释是为了请求验证
                    });
        }
        //添加XML解析
        private static string GetXmlCommentsPath()
        {
            return string.Format("{0}/bin/WebApiSwagger.xml", System.AppDomain.CurrentDomain.BaseDirectory);
        }
    }

不需要请求验证的,把两行请求验证代码注释掉。

完成了,运行项目后,查看

 

 

二:带有请求验证的Swagger配置。

  有验证的话,上述的Swagger配置调用接口,调用不了的。会提示验证不通过。

1.在项目添加CustomContent文件夹,再添加api-key-header-auth.js

 

 JS代码如下:

(function () {
    $(function () {
        $('#input_apiKey').show();
        $('#input_apiKey').on('change', function () {
            var key = this.value;
            if (key && key.trim() !== '') {
                swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", key, "header"));
            }
        });
    });
})();

修改JS文件的属性:

 

 

2.修改SwaggerConfig.cs代码如下:

 

 

3.运行项目,在Api_Key中输入需要验证的Token

 

 

再去测试发现Swagger接口已经通了。

 

放一下对比图:

 

 

 

posted @ 2020-03-09 14:51  剑无尘  阅读(2596)  评论(0编辑  收藏  举报