Web服务开发驱动器及其方法与流程

文档序号:37014223发布日期:2024-02-09 13:04阅读:17来源:国知局
Web服务开发驱动器及其方法与流程

本发明web服务开发,特别涉及一种web服务开发驱动器及其方法。


背景技术:

1、目前web服务的主流开发模式是前后端分离式开发模式。后端业务逻辑通常都是数据存储(db——postgres、mysql、oracle、elasticsearch、redis、mongodb、hbase、hadoop等)、其他业务模块(https/http接口,rpc远程调用)、消息队列等(rabbitmq、activemq、kafka、celery等)。后端使用goland、c#、python、java等语言,使用各种第三方框架(例如goland的echo、gin、iris、gorm,python-flask、fastapi、dijango、sqlalchemy等框架;java的spring、springboot、struts、mybatis、hibernate等框架)或自研框架构建接口。前端响应请求、渲染页面、处理和用户的交互行为及表现。前端使用html、cs、node.js等语言,使用第三方框架(例如bootstrap、react.js、vue.js、next.js等)或自研框架。前后端都需要根据业务逻辑约定接口、后端开发业务逻辑代码、前端渲染界面处理用户响应。

2、对于每一个框架,都在解决部分问题,没有基于业务逻辑将前后端很好地结合起来,从而提高软件开发人员(程序员、测试、产品、dba、运维等)的整体效能。基于每一个接口,每一个业务逻辑,开发人员都需要定制相关的代码。并为前端提供接口。而前端需要根据每个业务需求定制前端页面,处理用户输入,组装后端发送的请求内容,处理后端接口返回的数据,重新渲染页面,给用户输入做出反馈。

3、举例而言,例如当程序员使用了orm(数据库中间件sqlalchemy、gorm、mybatis)开发业务逻辑时,因为被封装,是否会有性能问题,是要依赖程序员的经验的。dba发现了问题,能够提供解决方案。但最终的修改,必须由程序员转为orm的语句才能实施,并且要通过一系列的流程,最终发布到线上。即使现在的微服务、函数式编程,也都只是在提高程序员开发单个功能的效率问题。而不是在解决整个软件开发团队(包括不限于程序员、测试、运营、产品、dba、运维等)的效能问题。

4、基于上述的现有技术,前后端的开发人员的大量时间在开发类似的逻辑,即使业务逻辑只有微小的变化,即使只是后端的返回多了个数据,前后端也都需要执行修改代码、测试、打包、部署等完整的流程。开发人员不能专注于核心业务的开发,效率低下。同时因为服务和代码的不断增长,占用了大量的硬件(cpu、内存、存储等)资源,再加上人员的流动,历史代码越来越难维护,服务和服务之间的关系,越来越繁杂,难以梳理。


技术实现思路

1、针对上述现有技术的不足,本发明所要解决的技术问题是:提供一种能够解决现有技术中所存在的问题的web服务开发驱动器及其方法。

2、为解决上述技术问题,本发明采用的一个技术方案是:提供了一种web服务构建方法,包括以下步骤:

3、提供组件库,所述组件库包括图表组件、表格组件、树形控件组件、单选框组件、复选框组件、文本组件、日期组件、自定义组件和/或定制页面;

4、配置专属web页面,接收用户以拖拽的方式下发的组件选择指令,根据拖拽的组件及其被拖拽的位置在web页面中生成相应组件,从而形成专属web页面;

5、配置相关指令以实现接口能力,将web页面上的能力和接口能力相关联;

6、依据参数绑定关系,将前端输入数据组装为http请求,并将请求发送至后端服务接口;

7、获取来自后端服务接口的数据,根据数据的参数绑定关系,渲染web页面。

8、进一步的,所述组件库还包括动态效果组件,所述动态效果组件包括浮动、气泡弹出和/或向上飘出动态效果。

9、进一步的,所述组件库被提交至代码管理服务器。

10、进一步的,在配置相关指令以实现接口能力,将web页面上的能力和接口能力相关联的步骤中,具体包括:通过jinja模板定义sql、http指令描述、消息队列指令描述以实现接口能力,将web页面上的get、put、post和/或delete能力和所述接口能力关联。

11、为解决上述技术问题,本发明采用的另一个技术方案是:提供了一种web服务方法,包括以下步骤:

12、将接收到的来自于前端的http请求进行统一参数处理向后传递;

13、对http请求进行统一参数处理后的参数进行jinja组装以生成对应的代执行指令,通过对应的指令执行器发送至相应的第三方服务;

14、获取来自于第三方服务的返回数据,通过jinja组装为符合前端约定的数据格式并发送至前端。

15、进一步的,在将接收到的来自于前端的http请求进行统一参数处理向后传递的步骤之后,还包括以下步骤:

16、对http请求的权限进行判断以确定是否能够继续向后传递,若是,则继续向后传递服务;若否,则返回应答。

17、进一步的,所述http请求包括get、put、post和/或delete请求;在将接收到的来自于前端的http请求进行统一参数处理并向后传递的步骤中,具体包括:

18、将http协议中的参数合并到一个字典中,且从cookie中解析出登录后的验证信息,存储到字典中的特殊键值中;

19、在对http请求的权限进行判断以确定是否能够继续向后传递的步骤中,具体包括:根据存入到字典中的特殊键值中的权限验证信息对http请求的权限进行验证,若验证失败,则跳转到登录。

20、进一步的,所述第三方服务包括存储db、消息队列和/或其他http/https/rpc服务;所述存储db包括mysql、postgres、oracle、elasticsearch、redis、mongodb、hbase和/或hadoop数据存储;所述消息队列包括rabbitmq、activemq、kafka和/或celery。

21、为解决上述技术问题,本发明采用的又一个技术方案是:提供了一种web服务开发驱动方法,包括以下步骤:

22、配置组件库,并将组件库提交至代码管理服务器;

23、配置专属web页面,接收用户以拖拽的方式下发的组件选择指令,根据拖拽的组件及其被拖拽的位置在web页面中生成相应组件,从而形成专属web页面;

24、通过前端管理页面配置相关指令以实现接口能力,将web页面上的能力和接口能力相关联;

25、依据参数绑定关系,将前端输入数据组装为http请求,并将请求发送至后端服务接口;

26、后端服务接口接收到http请求后,将http请求进行统一参数处理向后传递;

27、对http进行统一参数处理后的参数进行jinja组装以生成对应的代执行指令,通过对应的指令执行器发送至相应的第三方服务;

28、获取来自于第三方服务的返回数据,通过jinja组装为符合前端约定的数据格式并发送至前端;

29、前端驱动服务器将接收到的来自于后端服务接口的数据根据约定的数据格渲染前端web页面。

30、为解决上述技术问题,本发明采用的又一个技术方案是:提供了一种web服务开发驱动器,包括:

31、前端驱动服务器,包括组件库、交互式创建页面引擎模块、页面渲染模块、请求路由模块;所述组件库用于提供图表组件、表格组件、树形控件组件、单选框组件、复选框组件、文本组件、日期组件、自定义组件和/或定制页面;所述交互式创建页面引擎模块用于通过与用户交互而实现专属web页面的配置;所述页面渲染模块用于待web页面加载后,向后端驱动服务器请求数据,创建web页面上和数据相关联的元素;所述请求路由模块用于通过url的路径将http请求分发给正确的后端接口;

32、后端驱动服务器,用于实现来自于前端驱动服务器的请求处理、根据请求处理路由至对应的第三方服务模块、将第三方服务模块反馈的数据处理为符合前端约定的数据格式并发送至前端驱动服务器。

33、本发明web服务开发驱动器及其方法,具有以下有益效果:

34、降低开发能力:除主服务、前端组件、指令执行器,需要程序员开发,普通页面,接口能力其他人员(测试、dba、产品、运行)都能在自己的能力范围内实现。尤其是测试和dba,能很大程度上代替程序员的工作。从而使程序员专注于主服务和核心功能的开发。

35、统一的权限管理:在服务内实现了权限校验模块,同时能为其他服务提供权限校验能力,达到了统一的安全控制,方便内部及外部审核。

36、节省开发时间:使用本发明web服务开发驱动器,开发人员不需要从头开始开发每个项目,而是可以通过配置进行快速开发。开发人员(前端、后端、测试、dba、运营、产品等)只需要配置页面,配置指令实现接口能力,发布配置结果,即可实现业务需求,极大的提高开发效率。

37、多数据原支持:该平台不仅支持传统的数据库(mysql、postgres、mongodb、elasticsearch、redis、hbase、hadoop等),还支持https/http,shell指令,k8s指令,rpc等。同时支持通过增加新的指令执行器适配新的数据源。这种灵活性使得平台可以适应不同的项目需求,提供更好的扩展性和适应性。

38、缩短流程,提高cicd效率(持续集成、持续交付和持续部署):传统开发,需要使用git、jenkins、integrity、helm、docker等工具,完成cicd,在使用了本发明web服务开发驱动器后,除主服务需要采用传统的方式部署,前端组件只需要提交到代码管理服务器,后端接口能力实现,只需通过管理平台配置即可。然后通过版本控制功能,刷新服务,启用新的组件或接口能力,从而实现了快速部署、快速测试的能力,减少流程。

39、输入输出的灵活实现:使用jinja模板作为指令的渲染器和返回数据的解析器,本发明web服务开发驱动器可以将前端输入参数和jinja模板,一起渲染成待执行指令。或将指令返回结果,通过jinja模板,渲染成前端要求的数据格式。从而满足各种场景的输入输出需求。同时使用jinja模板作为中间媒介既保障了灵活性,同时减少了学习成本。

40、综上所述,本发明web服务开发驱动器实现了快速部署、组件化服务、统一权限管理、封装指令执行器、使用jinja作为中间媒介、支持多数据原,降低了开发能力,节省了开发时间,为开发人员提供了更高效、灵活和易用的开发环境,从而提升了开发效率和项目的可维护性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1