摘要
用.NET5的Source Generator,轻松实现集成化swagger。分享一下集中型api文档的计划方案,让我们更方便地完成电商系统的微服务架构。
正文
根据Dapr完成一个简易的根据.net的微服务架构电商系统(十五)——集中型api文档完成
以前有小伙伴们在发表评论留言板留言说怎样集成化swagger,最初沒有想透给了另一方一个说不清道不明的回应。事实上之后出来想想一下,用.NET5 给予的Source Generator实际上能够很便捷的完成插口集成化。今日就共享一下集中型api文档的计划方案
文件目录:
一、根据Dapr完成一个简易的根据.net的微服务架构电商系统
二、根据Dapr完成一个简易的根据.net的微服务架构电商系统(二)——通信架构解读
三、根据Dapr完成一个简易的根据.net的微服务架构电商系统(三)——一步一步教你如何撸Dapr
四、根据Dapr完成一个简易的根据.net的微服务架构电商系统(四)——一步一步教你如何撸Dapr之定阅公布
五、根据Dapr完成一个简易的根据.net的微服务架构电商系统(五)——一步一步教你如何撸Dapr之情况管理方法
六、根据Dapr完成一个简易的根据.net的微服务架构电商系统(六)——一步一步教你如何撸Dapr之Actor服务项目
七、根据Dapr完成一个简易的根据.net的微服务架构电商系统(七)——一步一步教你如何撸Dapr之服务项目过流保护
八、根据Dapr完成一个简易的根据.net的微服务架构电商系统(八)——一步一步教你如何撸Dapr之链路追踪
九、根据Dapr完成一个简易的根据.net的微服务架构电商系统(九)——一步一步教你如何撸Dapr之OAuth2受权 && 百度搜索版Oauth2
十、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十)——一步一步教你如何撸Dapr之关联
十一、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十一)——一步一步教你如何撸Dapr之全自动扩/缩容
十二、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十二)——istio dapr搭建多运作时服务网格
十三、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十三)——istio dapr搭建多运作时服务网格之工作环境布署
十四、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十四)——开发工具器皿调节小窍门
十五、根据Dapr完成一个简易的根据.net的微服务架构电商系统(十五)——集中型api文档完成
附则:(如果你觉得对你有效,请给个star)
一、电子商务Demo详细地址
二、通信架构详细地址
源代码制作器(Source Generator)是 C# Roslyn 编码解析器的一个新特点。与.net5同一时间公布了GA版本号。开发人员能够应用c语言编译器转化成的数据库检查用户编码,并转化成额外的源代码,与程序流程的别的一部分一起编译程序。根据这一特点我们可以非常容易的在编译程序环节静态数据织入各种各样编码完成相对应作用。因此集中型api文档完成构思便是在编译程序环节根据反射面获得到大家的remote/iapplicationservice下的接口方式,根据分析种类和方式 转化成相匹配的controller/action编码并织记到程序流程过程中。那样转化成后的运用在运作时swagger部件就可以查验到相匹配的控制板,进而转化成相对应文本文档。最先讨论一下制成品:
有关编码早已升级至gthub,再次获取并转化成后就可以根据 http://swagger.dapreshop.com:30882/swagger/index.html 浏览,下边大家讲下如何完成的。最先大家必须根据vs2019建立一个空的webapi运用,并启用“开启OpenApi适用”,那样建立的模版就可以内置swagger。然后大家建立一个.net的类库新项目,并让webapi引入它。另外留意webapi.csproj必须声明OutputItemType=”Analyzer” ReferenceOutputAssembly=”false”表明该新项目用以编码c语言编译器剖析。
<ProjectReference Include="..\ApiSourceGenerator\ApiSourceGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
然后类库新项目必须引进nuget:Microsoft.CodeAnalysis.CSharp。这一包便是Generator的本身了。随后大家建立相匹配的Generator完成类,并承继ISourceGenerator插口。根据这一插口的2个方式 大家就可以完成编码的剖析 织入。在Execute方式 里,大家从IApplicationService程序流程集反射面获得大家的全部插口和方式 ,并根据字符串数组的方式转化成相匹配的编码文档。最终根据GeneratorExecutionContext的AddSource引入文档并随别的编码一同编译程序。实际的关键点大伙儿有兴趣爱好的能够看一下Services\ApiDocument下的编码,完成相对性非常简单,这儿就不会再过多阐释。api文档转化成后启用链也非常简单,实际上便是当做了一个反向代理。根据api文档转化成的action进行http要求丢给apigateway。和我们在静态网页上涨插口是一个方式。
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0