• .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接口已经通了。

    放一下对比图:

     

  • 相关阅读:
    asp.net core 发布centos 7 遇到的坑
    模拟EF CodeFist 实现自己的ORM
    EF+Redis(StackExchange.Redis)实现分布式锁,自测可行
    Sqlite 梳理
    mina.net 梳理
    C# 读取Execl和Access数据库
    MVC4.0网站发布和部署到IIS7.0上的方法
    看懂SqlServer查询计划
    C#数据表加锁解锁
    『C#基础』数据库死锁笔记
  • 原文地址:https://www.cnblogs.com/cr-cool/p/12448724.html
Copyright © 2020-2023  润新知