码迷,mamicode.com
首页 > Web开发 > 详细

,NetFamework4.5.2+搭建带有Token验证的Swagger

时间:2020-12-16 12:42:12      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:mes   width   parameter   play   sem   add   生成   view   names   

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

1、新建一个webApi项目,并引用Swashbuckle,版本:5.6.0

技术图片

 2、引用成功后,系统会自动生成一个SwaggerConfig.cs的文件,位于App_Start文件夹内,修改这个配置文件为:

using System.Web.Http;
using WebActivatorEx;
using Swashbuckle.Application;
using Swashbuckle.Swagger;
using System.Web.Http.Description;
using System.Collections.Generic;
using SwaggerSite;

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

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

            GlobalConfiguration.Configuration
                .EnableSwagger(c =>
                {

                    c.SingleApiVersion("v1", "SwaggerSite");
                    c.IncludeXmlComments(string.Format("{0}/bin/SwaggerSite.XML", System.AppDomain.CurrentDomain.BaseDirectory));
                    c.OperationFilter<HttpAuthHeaderFilter>();

                })
                .EnableSwaggerUi(c =>
                {

                });
        }
    }
    public class HttpAuthHeaderFilter : IOperationFilter
    {
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            if (operation.parameters == null)
                operation.parameters = new List<Parameter>();

            operation.parameters.Add(new Parameter { name = "Authorization", @in = "header", description = "授权", required = false, type = "header" });

        }
    }
}

3、右键项目,选择属性-生成一栏,输出路径,XML文档文件为:bin\SwaggerSite.xml

技术图片

 4、修改Api控制器为:

技术图片
    /// <summary>
    /// 测试接口
    /// </summary>
    [RoutePrefix("api/Values")]
    public class ValuesController : ApiController
    {
        /// <summary>
        /// GET api/values
        /// </summary>
        /// <returns></returns>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        /// <summary>
        /// GET api/values/5
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public string Get(int id)
        {
            return "value";
        }

        /// <summary>
        /// POST api/values
        /// </summary>
        /// <param name="value"></param>
        public void Post([FromBody] string value)
        {
        }

        /// <summary>
        /// PUT api/values/5
        /// </summary>
        /// <param name="id"></param>
        /// <param name="value"></param>
        public void Put(int id, [FromBody] string value)
        {
        }

        /// <summary>
        /// DELETE api/values/5
        /// </summary>
        /// <param name="id"></param>
        public void Delete(int id)
        {
        }
    }
View Code

运行项目:https://localhost:44372/swagger

技术图片

安全性方面,生成的swagger可以使用授权,关于授权,C#这块可以使用JWT+Token验证。

技术图片

关于JWT授权,可以参考大牛博客:JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现

 纯属记录下,用到时,迅速搭建,万事大吉。

@天才卧龙的博客

,NetFamework4.5.2+搭建带有Token验证的Swagger

标签:mes   width   parameter   play   sem   add   生成   view   names   

原文地址:https://www.cnblogs.com/chenwolong/p/Swashbuckle.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!