手机版

asp.net core 3.0中使用时髦的的方法与问题

时间:2021-08-19 来源:互联网 编辑:宝哥软件园 浏览:

介绍#

上次更新了ASP。网核心3.0简单的记录了一下时髦的的使用,那个项目的美国石油学会(美国石油协会)比较简单,都是匿名接口不涉及到认证以及美国石油学会(美国石油协会)版本控制,最近把另外一个美国石油学会(美国石油协会)项目升级到了3.0,还是遇到了一些问题,这里单独写一篇文章介绍,避免踩坑。

时髦的基本使用#

时髦的服务注册:

服务AddSwaggerGen(选项={选项.SwaggerDoc('sparktodo ',新的OpenApiInfo { Version=' v1 ',Title='sparktodo API ',Description='用于SparkTodo的“API”,联系人=新的open心尖联系人(){名称='李维汉,Email='[Email protected]' } });//包含文档文件选项。包含注释(路径。组合(AppContext .基本目录,$ ' {类型(启动)。组装。getname().名称}。XML '),真);});中间件配置:

//启用中间件将生成的时髦的作为JSON端点。app。useswaggle();//启用中间件服务霸气用户界面等)。),指定斯瓦格数据端点应用程序.UseSwaggerUI(选项={选项.SwaggerEndpoint('/swag/sparktodo/swag。JSON ',' sparktodo Docs ');选项RoutePrefix=字符串。空的;选项. document title=' SparkTodo API });为时髦的添加不记名令牌认证#

服务AddSwaggerGen(选项={ //.//添加安全定义选项添加安全性定义('持票人,新openapiscuryscheme(){ Description='请在字段中输入单词'持票人,后跟空格和JWT值,名称='授权,In=参数位置.标题,类型=安全性架构类型. ApiKey,});选项添加安全要求(新的OpenAPIsecurity要求){ {新的OpenAPIsecurity方案{ Reference=新的OpenAPIreference(){ Id='持票人,类型=引用类型.安全性架构} },数组emptystring()} });});支持多个ApiVersion#

服务。添加版本控制(选项={选项.未指定时假定fault version=true;选项DefaultApiVersion=ApiVersion .默认;选项. ReportApiVersions=true });服务AddSwaggerGen(选项={ //.选项SwaggerDoc('v1 ',新OpenApiInfo { Version=' v1 ',Title=' API V1 ' });选项SwaggerDoc('v2 ',新OpenApiInfo { Version=' v2 ',Title=' API V2 ' });选项DocInclusionPredicate((docName,apidec)={ var versions=apidec .CustomAttributes().OfTypeApiVersionAttribute().选择许多(attr=attr .版本);返回版本. any(v=$ ' v { v . ToString()} '==DocName);});选项operationfilterremoveversionparametersoperationfilter();选项DocumentFilterSetVersionInPathDocumentFilter();});自定义美国石油学会(American Petroleum Institute)版本相关的OperationFilter:

公共类SetVersionInPathDocumentFilter : IDocumentFilter { public void Apply(open API document swaggerDoc,DocumentFilterContext){ var updatedPaths=new open API path();foreach(swaggerDoc中的定义变量条目。路径)。添加(条目。密钥。替换(' v{version} ',swaggerDoc .信息版本),条目。价值);} swaggerDoc .路径=updatedPaths} }公共类removeversionparameter operation filter : iooperationfilter { public void Apply(OpenApiOperation,OperationFilterContext从所有操作变量版本参数=操作中删除版本参数。参数。单个(p=p . Name==' version ');手术。参数。删除(版本参数);}}中间件配置:

//启用中间件将生成的时髦的作为JSON端点。app。useswaggle();//启用中间件服务霸气用户界面等)。),指定斯瓦格数据端点应用程序.UseSwaggerUI(选项={选项.SwaggerEndpoint('/swag/v2/swag。JSON ',' v2文档');选项SwaggerEndpoint('/swag/v1/swag。JSON ',' v1文档');选项RoutePrefix=字符串。空的;选项. document title=' SparkTodo API });最终时髦的效果

备忘录编号

上面的配置来自https://github.com/WeihanLi/SparkTodo这个项目,要获取代码可以参考这个项目

参考号

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/树/主/测试/网站/MultipleVersions/swag https://stack overflow。com/questions/58197244/斯瓦格ui-with-netcore-3-0-运营商-令牌-授权https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1295 https://github.com/WeihanLi/SparkTodo总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

版权声明:asp.net core 3.0中使用时髦的的方法与问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐