微服务聚合文档技术实现

上传人:m**** 文档编号:125688083 上传时间:2022-07-27 格式:DOC 页数:7 大小:265.50KB
收藏 版权申诉 举报 下载
微服务聚合文档技术实现_第1页
第1页 / 共7页
微服务聚合文档技术实现_第2页
第2页 / 共7页
微服务聚合文档技术实现_第3页
第3页 / 共7页
资源描述:

《微服务聚合文档技术实现》由会员分享,可在线阅读,更多相关《微服务聚合文档技术实现(7页珍藏版)》请在装配图网上搜索。

1、微服务聚合文档技术实现方案VW.亠1.前言随着时代的发现,我们的项目也从以前的,单节点项目(所有功能都向一个项目中堆,维护性差),最近几年,微服务使用的人群越越来越广,一个简单的电影系统,我们也可以按模块进行切换,例如,分为订单模块,电影模块,支付模块,会员模块等等。而文档维护起来的成本也越来越高,有时候,我们一个系统,就可以拆分成上100个服务,这时,我们的文档如何维护了?假设,我们有100个服务,我们搭建100个swagger,那就得有100个网站,对于开发人员的文档维护,是非常繁琐的。针对这种情况,我们只能通过swagger聚合文档的方式来解决。2.系统环境名称版本说明JDK1.8Spr

2、ingCloud2.1 3.微服务面临的挑战当前面临的问题1) 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。2) 接口返回结果不明确3) 不能直接在线测试接口,通常需要使用工具,比如postman4) 接口文档太多,不好管理5) 接口文档与对应代码匹配不上,导致接口文档基本无用。6) 对于有较多微服务的系统来说,一个服务一个文档地址,麻烦且不方便管理由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。随着时间推移,不断修改接口实现的时候都必须同步修改接口文

3、档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。swagger介绍为了解决上面这样的问题,本文将介绍RESTfulAPI的重磅好伙伴Swagger2,它可以轻松的整合到SpringBoot和微服务当中,并与SpringMVC程序配合组织出强大RESTfulAPI文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTfulAPI。1.2 swagger的不足Swagger作为接口文档工具接入spr

4、ingboot工程很方便,只需一个starter,一个configuration就可集成完毕。但是对于有较多微服务的系统来说,一个服务一个文档地址,便会觉得比较麻烦。有没有什么好的办法可以都把他们集中起来?这时候聚合文档的解决方案出现了,将所有的微服务地址以swagger分组的形式展现,切换分组的时候就相当于直接切换了整个微服务。4.技术架构艸r町*io?#哥SloggerbccdE昭pui*左躺1试換口掛馬5.功能特点3.1文档聚合效果点击图中所示下拉选,可切换不同服务模块的api文档BiadeX斥口文愕翩AjIu由SwigerHo址焉卫用90业弼址金手虫词笹力扶口0S!口&僅口etzifl

5、加d?S皑ffl&込sn*:沖X环+SEHtrt:別列詆玉口立鸣至花曰訓就提文档系妍Ik本H50SElEASEh跑hufgd盘轴PnihUb3fi-1AHIfUfliHftps叫adewyp湄品就運WUrl1Uade-&YyniV2ajdcc-s-etSOocaftxi1Hade57sipv23f-dcc-s医口説汁倍患OETQRjST口点击权限设置菜单,可查询该api的请求示例、请求参数、响应状态、响应参数、响应示例信息。点击调试,可根据提供的请求参数说明,发送对应的请求swagger聚合文档技术选型目前采用:swagger2技术+swagger-bootstrap-ui技术(页面增强型)技

6、术swagger生态图W朋5丈沖砂羽卿明文钛泅阴驴邛旳反件)mockserver亜疋护钳的说明反斗1石正栄SSAPI3E档Mt肚g诺悶丈打向pq&期刖.i芦严任唱旳件正住山M炯耨送音注胖中.利用主戲据灯功.说晒5:件颐iflMS件务酹目肯BTfHpinncH.itiQn.|iIiwiggerjsonffSreIHB乜括swagger-sprrignwc,twaqger-phpiwjigger-validjtoriHijger-edKw3212swagger2介绍Swagger是一款让你更好的书写API文档的规范且完整框架,提供描述、生产、消费和可视化RESTfulAPI。是由庞大工具集合支撑的

7、形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。通过代码和注释自动生成文档。在Swagger框架下,开发人员可对服务进行归类说明,对方法,模型,返回结果等进行详细说明。方便开发人员在编写代码的同时,编写文档信息。自动生成,只需很少的编辑工作,就能获得完整的RESTAPIs文档。技术简介swagger-bootstrap-ui是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,能拥有一份简洁、强大的接口文档体验。3.2.2.2核心功能该UI增强包主要包括两大核心功能:文档说明和在线调试。文档说明:根据Swagger的规范

8、说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headers、Curl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简介、强大。swagger-bootstrap-ui与官方swagger-ui的区别每一个增强的功能都是贴合实际,考虑到开发者的实际开发需要,是必不可少的功能,主要包括:个性

9、化配置:通过个性化ui配置项,可自定义UI的相关显示信息离线文档:根据标准规范,生成的在线markdown离线文档,开发者可以进行拷贝生成markdown接口文档,通过其他第三方markdown转换工具转换成html或pdf,这样也可以放弃swagger2markdown组件接口排序:自后,ui支持了接口排序功能,例如一个注册功能主要包含了多个步骤,可以根据swagger-bootstrap-ui提供的接口排序规则实现接口的排序,step化接口操作,方便其他开发者进行接口对接3224UI特点以markdown形式展示文档,将文档的请求地址、类型、请求参数、示例、响应参数分层次依次展示,接口文档

10、一目了然,方便开发者对接在线调试栏除了自动解析参数外,针对必填项着颜色区分,同时支持tab键快速输入上下切换.调试时可自定义Content-Type请求头类型个性化配置项,支持接口地址、接口description属性、UI增强等个性化配置功能接口排序,支持分组及接口的排序功能支持markdown文档离线文档导出,也可在线查看离线文档调试信息全局缓存,页面刷新后依然存在,方便开发者调试以更人性化的treetable组件展示SwaggerModels功能响应内容可全屏查看,针对响应内容很多的情况下,全屏查看,方便调试、复制文档以多tab方式可显示多个接口文档请求参数栏请求类型、是否必填着颜色区分主

11、页中粗略统计接口不同类型数量支持接口在线搜索功能左右菜单和内容页可自由拖动宽度支持自定义全局参数功能,主页包括header及query两种类型i18n国际化支持,目前支持:中文简体、中文繁体、英文JSR-303annotations注解的支持6.设计阶段6.1总体设计功能规划:1. 针对若干个微服务,每个类名controller、api请求增加swagger注解,以便动态生成api文当等。2. 按照不同的服务进行分类,同时图形化展示api文当,并提供在线调试功能和离线文档功能。3. 支持全局搜索、全局参数1. 版本控制、国际化微服务拆分原则粒度微小:根据业务功能划分服务粒度,总的原则是服务内部

12、高内聚,服务之间低耦合。2. 责任单一:每个服务只做一件事,即单一职责原则。3. 隔离性原则:每个服务相互隔离,且不互相影响业务无关优先原则:基础服务,是一些基础组件,与具体的业务无关。比如:短信服务、邮件服务。这里的服务最容易划分出来做微服务,也是我们第一优先级分离出来的服务。开发策略总体规则:针对多个不同的微服务模块,每个模块处理api请求类增加swagger注解。常用注解: Api()用于类; 表示标识这个类是swagger的资源ApiOperation()用于方法; 表示一个http请求的操作ApiParam()用于方法,参数,字段说明; 表示对参数的添加元数据(说明或是否必填等)Ap

13、iModel()用于类表示对类进行说明,用于参数用实体类接收ApiModelProperty()用于方法,字段 表示对model属性的说明或者数据操作更改ApiIgnore()用于类,方法,方法参数 表示这个方法或者类被忽略ApiImplicitParam()用于方法6.2 表示单独的请求参数ApiImplicitParams()用于方法,包含多个ApiImplicitParam统一配置管理集成nacos,可实时修改swagger的相应配置或其他配置API鉴权基于JWT封装,每次请求的时候,会拦截到需要鉴权的API请求,并对其请求头携带的Token进行认证。若Token过期、不存在、错误,都会导致鉴权失败,继而无法访问到对应的API

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!