一种规范并简化暴露Rest服务的方法技术

技术编号:38004064 阅读:24 留言:0更新日期:2023-06-30 10:18
本发明专利技术涉及一种规范并简化暴露Rest服务的方法。本方法采用一种新的规范的流程实现了Rest服务发布的规范化和自动化,有效解决了手动编写Controller代码暴露Rest服务存在的代码不规范、错误率高等问题,降低了周期性代码审核和人工code review所带来的人力成本。本方法采用了新的自动暴露机制,简化了流程,避免了人为介入而引入的不可控性,同时,由于本方法采用的自动化过程对内对外都是无感的,能够完全遵从open api规范,无论是开发者查看服务的方式,还是执行者调用服务的方式都和传统手动暴露服务时完全一致,用户更易接受。用户更易接受。用户更易接受。

【技术实现步骤摘要】
一种规范并简化暴露Rest服务的方法


[0001]本专利技术属于Rest服务暴露方法
,尤其涉及一种规范并简化暴露Rest服务的方法。

技术介绍

[0002]随着信息技术的发展,在公共网络或私域中暴露着各种各样的Rest服务用于支持各类场景,并支撑着各行各业形式多样的现代化平台和系统。通常,技术人员都是通过定义不同的Controller来暴露Rest服务,但是不同厂家、不同团队、不同场景、不同业务线的Rest服务对于Controller的使用却千差万别。
[0003]传统的Rest服务暴露方式通过手动编写Controller代码来实现,即使具有实践范本、行业规范、代码检测插件等支持,但其实施效果很大程度上仍依赖研发人员的职业素养和个人技术水平,由于研发人员个人理解和技术水准各异,因此很难在Controller层面形成统一的规范。而且,由于手动编写Controller代码错误率较高,为了保证Controller的代码质量,还需安排高级技术人员进行代码审查,耗费了大量的人力。

技术实现思路

[0004]为了克服现有Re本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种规范并简化暴露Rest服务的方法,其特征在于,所述方法包括:S1.基于CQRS划分并定义服务类型;S2.根据S1定义的服务类型定义相应的标准服务;S3.根据S1定义的服务类型定义接收参数的标准形式;S4.定义标准的服务返回消息体;S5.定义暴露Rest服务和方法的标记;S6.根据S1定义的服务类型定义服务转发器;S7.扫描携带了暴露Rest服务标记的服务;S8.对携带了暴露Rest服务标记的服务根据其服务类型分配到不同的服务注册器进行注册;S9.各服务注册器提取该服务的元数据进行存储;S10.与各服务注册器关联的方法注册器提取该服务的方法,根据接收参数的个数不同进行分类,并分别存入单参数收集器和多参数收集器,然后提取该方法的元数据进行存储;S11.利用服务的元数据和方法的元数据适配标准open api规范;S12.标记需要暴露的服务和方法;S13.服务启动时自动暴露服务。2.根据权利要求1所述的规范并简化暴露Rest服务的方法,其特征在于,步骤S1中所述服务类型包括查询服务和指令服务;S2中定义查询服务的标准服务QueryService和指令服务的标准服务CmdService。3.根据权利要求2所述的规范并简化暴露Rest服务的方法,其特征在于,步骤S3中所述根据S1定义的服务类型定义接收参数的标准形式,包括:定义参数接收类型,根据S1定义的服务类型以及http/https的协议,对于查询服务接受GET、POST请求,对于指令服务仅接受POST请求;定义参数接收方式,接收application/json类型的数据和request param类型的请求参数。4.根据权利要求3所述的规范并简化暴露Rest服务的方法,其特征在于,步骤S4中所述的服务返回消息体统一返回json格式的消息,所述json格式的消息中包含响应码、数据和提示信息。5.根据权利要求3所述的规范并简化暴露Rest服务的方法,其特征在于,步骤S6中所述的根据S1定义的服务类型定义服务转发器,包括:根据S1定义的服务类型定义相应的Controller作为各类型服务的转发器;对于查询服务定义QueryDispatcherController作为查询服务转发器;对于指令服务定义CmdDispatcherController作为指令服务转发器;在所述查询服务转发器和所述指令服务转发器中分别定义Action作为暴露在外的用于接受外部请求的节点,Action的数量需覆盖该服务类型支持的请求类型及其接受参数的类型。6.根据权利要求5所述的规范并简化暴露Rest服务的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:樊伦勇
申请(专利权)人:光控特斯联上海信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1