.Net Core 5.x Api开发笔记 -- Swagger设置Header(九)
2023-03-31 11:01:01 时间
Swagger的基础使用可以参考之前的文章:.Net Core 5.x Api开发笔记 -- Swagger(七)
这里只记录如何给Swagger添加Header,要达到的效果如下图所示:
1,添加 HttpHeaderFilter 参数设置类
在项目中添加一个参数设置类,命名自定义就行,如下图所示:
代码如下:
1 public class HttpHeaderFilter : IOperationFilter 2 { 3 /// <summary> 4 /// 给Swagger添加Header头部参数 5 /// </summary> 6 /// <param name="operation"></param> 7 /// <param name="context"></param> 8 public void Apply(OpenApiOperation operation, OperationFilterContext context) 9 { 10 operation.Parameters = new List<OpenApiParameter> 11 { 12 new OpenApiParameter 13 { 14 Name = "token", 15 Description = "Token", 16 In = ParameterLocation.Header, 17 Required = false 18 }, 19 new OpenApiParameter 20 { 21 Name = "TermID", 22 Description = "学期ID", 23 In = ParameterLocation.Header, 24 Required = false 25 }, 26 new OpenApiParameter 27 { 28 Name = "ContainerID", 29 Description = "组织ID", 30 In = ParameterLocation.Header, 31 Required = false 32 } 33 }; 34 } 35 }
参数说明:
Name:就是设置header的字段属性名称,在同一个参数位置,名称必须唯一,且大小写敏感。
In:参数位置,常见有三个:
- path:参数成为操作路径(URL)的一部分,俗称路径参数。路径参数的
required
字段必需为true
- query:参数成为操作路径(URL)查询参数的一部分,俗称查询参数,如
/users?id=123456
- header:参数成为 HTTP 请求头的一部分,俗称请求头参数。注意:请求头是大小写敏感的
Required:是否必需,默认值是 false
我们按照 In:参数位置的类型分别设置成 Header、Query、Path,看是什么效果
2, 使用参数设置类 HttpHeaderFilter
上边的参数类已经创建好,下边看下如何使用、使用很简单,代码如下(加红标粗的代码部分)
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.AddControllers(); 4 5 //swagger 6 services.AddSwaggerGen(options => 7 { 8 options.SwaggerDoc("swaggerapi", new OpenApiInfo 9 { 10 Version = "v1", 11 Title = "swaggerapi API文档", 12 Description = "swaggerapi API的使用说明" 14 }); 15 16 // 为 Swagger JSON and UI设置xml文档注释路径 17 // 获取应用程序所在目录(绝对路径,不受工作目录影响,建议采用此方法获取路径) 18 // 此方式适用于Windows/Linux 平台 19 var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); 20 var xmlPath = Path.Combine(basePath, "NetCore.Swagger.xml"); 21 options.IncludeXmlComments(xmlPath); 22 23 //添加自定义header授权参数 24 options.OperationFilter<HttpHeaderFilter>(Array.Empty<object>()); 25 }); 26 }
完毕!!!
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十