CN116886747A - 基于前端的后端业务功能调用方法、装置、设备及介质 - Google Patents
基于前端的后端业务功能调用方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116886747A CN116886747A CN202310835735.5A CN202310835735A CN116886747A CN 116886747 A CN116886747 A CN 116886747A CN 202310835735 A CN202310835735 A CN 202310835735A CN 116886747 A CN116886747 A CN 116886747A
- Authority
- CN
- China
- Prior art keywords
- information
- target
- remote
- service
- calling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000006870 function Effects 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 18
- 238000004891 communication Methods 0.000 abstract description 14
- 238000012545 processing Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Abstract
本发明涉及网络通信技术领域,尤其涉及一种基于前端的后端业务功能调用方法、装置、设备及介质,获取基于前端编写的配置文件与前端发送的请求信息,解析配置文件与请求信息,得到至少一个路由信息与远程调用信息之间的对应关系与请求信息中的目标路由信息,根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务,远程服务用于在被调用时对应的业务功能服务。本发明中,通过对路由信息与远程调用信息之间的配置关系,基于前端发送的路由信息可以调用对应的远程服务,完成后端服务程序的业务功能,只需要前端工程师编写配置文件,可以实现后端服务程序,从而提高了后端的开发效率。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于前端的后端业务功能调用方法、装置、设备及介质。
背景技术
目前WEB前端工程师可以通过编写JavaScript来实现WEB后端服务程序,运行在搭载Node.js运行环境的服务器上,这样通过同一种JavaScript编程语言可以同时编写WEB前端和WEB后端,这样可以减少前端工程师和后端工程师的沟通成本,从而减少软件系统的开发成本。现有技术中,虽然是使用的同一种JavaScript编程语言,但是因为所需要的技术能力是不同的,比如需要熟悉HTTP服务、RPC远程过程调用、MySQL数据库和Redis数据缓存等中间件,需要基于对中间件的了解编写代码做一些基础封装,才能开始开发实际的业务功能,所以存在开发效率低的问题,因此,在后端开发中,如何提高开发效率成为亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种基于前端的后端业务功能调用方法、装置、设备及介质,解决在后端开发中,开发效率较低的问题。
本申请实施例的第一方面提供了一种基于前端的后端业务功能调用方法,所述后端业务功能调用方法包括:
获取基于前端编写的配置文件,解析所述配置文件,得到至少一个路由信息与远程调用信息之间的对应关系;
获取所述前端发送的请求信息,解析所述请求信息,确定所述请求信息中的目标路由信息;
根据所述对应关系与所述目标路由信息,确定与所述目标路由信息对应的目标远程调用信息,基于所述目标远程调用信息,调用对应的远程服务,所述远程服务用于在被调用时对应的业务功能服务。
本申请实施例的第二方面提供了一种基于前端的后端业务功能调用装置,所述后端业务功能调用装置包括:
解析模块,用于获取基于前端编写的配置文件,解析所述配置文件,得到至少一个路由信息与远程调用信息之间的对应关系;
目标路由信息确定模块,用于获取所述前端发送的请求信息,解析所述请求信息,确定所述请求信息中的目标路由信息;
调用模块,用于根据所述对应关系与所述目标路由信息,确定与所述目标路由信息对应的目标远程调用信息,基于所述目标远程调用信息,调用对应的远程服务,所述远程服务用于在被调用时对应的业务功能服务。
第三方面,本发明实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的后端业务功能调用方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的后端业务功能调用方法。
本发明与现有技术相比存在的有益效果是:
获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系,获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息,根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务,远程服务用于在被调用时对应的业务功能服务。本发明中,根据前端编写的脚本实现对后端的服务程序的运行,通过对路由信息与远程调用信息之间的配置关系,基于前端发送的路由信息可以调用对应的远程服务,完成后端服务程序的业务功能,只需要前端工程师编写配置文件,可以实现后端服务程序,从而提高了后端的开发效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于前端的后端业务功能调用方法的一应用环境示意图;
图2是本发明一实施例提供的一种基于前端的后端业务功能调用方法的流程示意图;
图3是本发明一实施例提供的一种基于前端的后端业务功能调用方法的流程示意图;
图4是本发明一实施例提供的一种基于前端的后端业务功能调用装置的结构示意图;
图5是本发明一实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本发明说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本发明说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
本发明一实施例提供的一种基于前端的后端业务功能调用方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digit al assistant,PDA)等计算机设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参见图2,是本发明一实施例提供的一种基于前端的后端业务功能调用方法的流程示意图,上述基于前端的后端业务功能调用方法可以应用于图1中的服务端,上述服务端连接相应的客户端,如图2所示,该基于前端的后端业务功能调用方法可以包括以下步骤。
S201:获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系。
在步骤S201中,通过获取基于前端编写的配置文件,确定配置文件中的路由信息与远程调用信息之间的对应关系,以便于实现后端的服务程序。
本实施例中,通过WEB前端工程师编写对应的配置文件,配置文件中包括路由信息与远程调用信息,其中,路由信息与远程调用信息之间存在一一对应关系,根据路由信息确定对应的远程服务。
可选地,获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系,包括:
获取基于预设脚本编写的配置文件;
解析配置文件,得到配置文件中路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称;
根据路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称,确定路由信息与远程调用信息之间的对应关系。
本实施例中,预设脚本编写的配置文件为使用JavaScript编程语言编写得到的配置文件,使用Node.js服务器加载对应的配置文件,其中,Node.js是一个以JavaScript为运行环境的平台,在编写数据处理函数以及对数据处理函数的引用实例时,均应被包含于JavaScript标签中,本实施例中,编写对数据处理函数的引用实例的目的在于能够在后端开发过程中运行所编写的数据处理函数,找到对应的远程调用服务,另外,数据处理函数本质上是包含有对服务器中的数据进行获取及相关处理的逻辑代码。
本实施例中,利用Node.js实现在前端页面的代码模板中编写数据处理函数,以此取代了在后端编写数据处理函数的操作。
另一实施例中,可以利用Node.js的WEB框架生成前端页面的代码模板,进而基于JavaScript标签在该代码模板中编写包含有后端数据的获取及处理等操作逻辑的数据处理函数,并且通过在代码模板中编写数据处理函数的引用实例,以用于执行数据处理函数以调取相关数据并显示在前端页面,进而生成最终的配置文件。由于Node.js是一个JavaScript的运行环境,因此Node.js与JavaScript均应用于后端的开发,由于本方法是利用JavaScript标签,在Node.js的WEB框架所产生模板中编写数据处理函数,因此其开发过程是在前端进行,进而本方法实现了前端开发人员分担原本属于后端开发人员开发内容的效果,降低了前端开发人员与后端开发人员在开发工作量上的差距,相对提高后端的开发效率。
需要说明的是,利用Node.js的WEB框架生成前端页面的代码模板时,需要在在代码模板中引入预设的js类型文件及css类型文件,js类型文件是指以js为扩展名的文件,是用JavaScript脚本语言编写得到的,而css类型文件是指以css为扩展名的文件。js类型文件及css类型文件相当于是对JavaScript代码以及css代码的封装,本实施例中,代码模板中直接引入预先封装有JavaScript代码的js类型文件以及预先封装有css代码的css类型文件,由于js类型文件以及css类型文件均为独立的文件,因此前端技术人员可以以模块化的形式先对js类型文件及css类型文件进行编写,进而再将所编写的js类型文件及css类型文件引入至代码模板即可,引入至代码模板时仅需要编写文件所在的路径即可,能够相对减少对代码模板的代码编写量,并且能够提高代码模板中的代码简洁性。
需要说明的是,本实施例中,WEB框架可以为Express框架。Express框架是一个简洁灵活的Node.js的WEB应用框架,相比于其它WEB应用框架而言具有轻量级的特点,占用资源较少,并且具有丰富且易用的HTTP工具,通过Express框架能够相对高效的开发对应后端。
解析配置文件,得到配置文件中路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称,根据路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称,确定路由信息与远程调用信息之间的对应关系。其中,路由信息与远程调用信息之间的对应关系确定对应的HTTP服务器与远程调用服务器,例如,http://example.com/methodA对应到methodA方法的调用,http://example.com/methodB对应到methodB方法的调用,methodA方法对应到protoA数据格式和serviceA服务名称,methodB方法对应到protoB数据格式和serviceB服务名称。
需要说明的是,在WEB应用后端使用有JavaScript运行能力的引擎如nodeJs作为开发必须的支持环境,使用node作为后端端开发的环境支持,且WEB应用后端使用Typescript作为前端开发语言,WEB应用后端实时查看并通过nodeJs运行脚本的方式以网络请求获取WEB应用前端生成的请求信息,并通过JavaScript或Typescrip语言编写的脚本将接口类型定义文件转为WEB应用后端开发中可用的接口方法即Typescript方法。WEB应用前端使用WEB接口文档做实时请求,并自定义请求参数和查看接口详细的返回数据,则WEB应用后端的接口类型定义有变化时,只需刷新所需WEB接口文档便可立即查看更新,其中,WEB应用前端可以通过浏览器访问WEB应用后端集成SwaggerUI后产生的服务地址查看具体的接口定义,若WEB应用前端不能访问WEB接口文档时,则需要与WEB应用后端协商使其能正常工作。
S202:获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息。
在步骤S202中,接收前端发送的请求信息,请求信息中包括对应的请求方法与请求路径,根据对应的请求方法与请求路径,确定请求信息中的目标路由信息。
本实施例中,当产生对应的服务需求后,在前端发送对应的请求信息,通过对应接口将请求信息传输至对应后端,前端产生服务需求后,可以在依赖的公共接口层中找到与该服务需求相对应的接口,该接口的功能可以满足请求信息的服务需求。找到该接口后,请求信息可以通过服务注解的方式识别该接口,另外,由于该接口对应的服务在远端,前端需要通过网络通信的方式向对应的后端发送调用请求,因此,前端需要先把与该服务有关的信息进行序列化处理以后再传输。为了让后端顺利识别该信息,前端还需要在服务注解中说明序列化方式,以及与该服务需求对应的服务名称,以便后端找到对应的服务。
需要说明的是,公共接口层是前端与后端共同依赖的接口集合前端和后端可以利用公共接口层的已有接口满足自身需求,减少本地的代码编写工作。接口中规定了要实现的功能,每一个接口都对应一个服务,该服务中给出了实现该功能的具体方法。因此,前端和后端要实现一个具体的功能,不仅需要找到该功能对应的接口,还需要运行该接口对应的服务获得相应的结果才能实现该功能。当该服务不在本地时,需要通过gRPC来进行远程调用,即前端发送一个远程服务调用请求,后端接收该请求并运行对应的服务,将运行后的结果发回前端。这一过程由于涉及服务调用和网络通信,需要进行多次代码编写以完成参数配置和数据传输,且中间执行步骤较为复杂。本实施例中的远程服务是对gRPC远程调用服务过程中的部分方法步骤进行封装,当公共接口层、前端和后端引入该远程服务时,就可以利用该远程服务完成对应的功能。
当后端获取到前端发送到的请求信息后,解析请求信息,确定请求信息中的目标路由信息。其中,请求信息的序列化方式为json,则请求信息是按照json格式排列的一串字符串,后端接收到该字符串以后,按照json格式对请求信息解析,得到请求信息中的各种参数名和参数值,然后根据这些信息执行对应的服务,本实施例中的序列化方式可以为hessian、protostuff或json。
可选地,获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息,包括:
根据前端发送的请求信息,通过后端接口解析请求信息,确定目标路由信息中对应的目标请求路径信息。
本实施例中,根据接收到的基于前端发送的请求信息,通过后端接口解析请求信息,解析时,可以根据http请求信息的格式来解析上述请求信息,例如,可通过正则表达式或预先定义的模板来提取相关的参数字段及其对应的值,包括请求方法method字段(GET、POST等)、请求头和请求体,如host、url、cookie、User-Agent、content-type等。收到的如果是https请求数据时,可以先替换证书,再明文解析这个请求,被明文解析后的https请求,处理流程同上述http一致。
需要说明的是,可以对请求信息中的路由信息进行标准化处理,以方便进行对请求信息进行解析。例如,当协议中含有默认端口时,其中一个请求路径带有默认端口,另一个请求路径不含有默认端口,例如,http://www.test.com:80/hello.html和http://www.test.com/hello.html,其中一个请求路径包含默认端口80,另一个请求路径中把默认端口80去掉,但两个路径都是指向hello.ht ml这个路径。当请求路径中包含分段标识符时,会忽略分段标识符,例如htt p://www.test.com:80/hello.html#section中分段标识符为#section,分段标识符仅仅标识一个网页的某个位置。当请求路径中包含空查询串“?”时,会忽略空查询串“?”,本实施例中把请求信息中的路径信息按照预先设置的标准化格式进行处理,统一大小写,去掉空查询串和去掉默认端口等。
本实施例中,当多个请求信息同时发送时,转发到后端系统中的请求信息的流量过大,可能会造成堵塞、延迟严重等情况,可以先将上述获取到的至少一个请求信息以消息队列或共享内存的方式缓存到数据缓冲区,还可以保存到数据库,以提高处理速度,然后调用对应模块的同一个后端接口逐个分析每个请求信息中的路由信息等,进一步的根据请求的资源准备响应数据。
需要说明的是,WEB后端接口层是WEB应用后端开发中定义接口的class,在引入Swagger后,要经过编写Swagger启动类以及进行spring静态资源、拦截器的配置,经过这些配置后就可以直接通过Java注解的方式直接使用Swagger,其中,SwaggerUI则可以通过直接下载对应Swagger版本的UI资源,将dist目录下的文件,复制到WEBapp下的Swagger目录中或项目中自定义的Swagger路径下,然后修改SwaggerUI资源里index.html的文档加载地址为WEB后端定义的服务名称即可。则接口类型文件即为通过集成Swagger后,使用注解生成的包含WEB后端定义的全量接口类型文件。该接口类型文件,为一定结构的json文件,此文件可以转成符合Swagger规范的yaml文件,两者互通。若是后端接口已经稳定而不再变动,则可以直接保存此json或yaml文件供离线使用。
S203:根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务。
在步骤S203中,远程服务用于在被调用时对应的业务功能服务,根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,其中,目标远程调用信息为远程调用的数据格式与服务名称。
本实施例中,根据对应关系,确定与目标路由信息匹配的目标远程调用信息,以便于根据目标远程调用信息调用对应的远程服务,例如,路由信息http://example.com/methodA与远程调用服务信息serviceA对应,则当目标路由信息为http://example.com/methodA,根据对应关系,调用服务名为serviceA的远程服务。
可选地,根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务,包括:
根据对应关系,对目标路由信息匹配对应的目标远程调用信息,确定目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称;
根据远程调用的服务名称,调用对应的远程服务。
本实施例中,确定目标远程调用信息时,需要确定对应的远程调用的数据格式与远程调用的服务名称,其中,远程调用的数据格式与目标路由信息中的请求方法的数据格式对应,目标远程调用信息对应的远程调用的数据格式可以包括protoA数据格式与protoB数据格式,目标远程调用信息对应的远程调用的服务名称可以为serviceA服务名称与serviceB服务名称,其中目标路由信息中的methodA请求方法与protoA数据格式、serviceA服务名称对应,目标路由信息中的methodB请求方法与protoB数据格式、serviceB服务名称对应,当确定目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称后,根据对应的数据格式与服务名称进行远程调用。
需要说明的是,在进行远程调用时,可以使用gRPC通信框架调用对应远程服务,gRPC全称grpc remote procedure calls,一个可以运行在任何系统上的高性能开源远程过程调用(Remote Procedure Call,RPC)框架,使用Protobuf作为通信协议,RPC框架,在软件工程项目中,可以是指一种对编程人员透明的可以调用不在本地的相同命名标准的函数接口,Protobuf通信协议,是指一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。
可选地,根据对应关系,对目标路由信息匹配对应的目标远程调用信息,确定目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称,包括:
根据对应关系,确定与目标路由信息匹配的目标远程调用的数据格式;
根据目标远程调用的数据格式,确定目标远程调用的服务名称。
本实施例中,目标远程调用信息对应的远程调用的数据格式为通过protobuf定义通信的数据格式,将定义通信的数据格式与路由信息中的请求方法对应,根据对应关系,确定与目标路由信息匹配的目标远程调用的数据格式,根据目标远程调用的数据格式,确定目标远程调用的服务名称。
需要说明的是,protobuf定义通信的数据格式为‘*.proto’文件,根据protobuf格式语法,定义所需数据的传输格式,然后在该数据格式文件中定义远程调用的具体服务名称,所以可以根据对应数据格式确定远程调用的服务名称。具体地,使用protobuf工具编译对应的数据格式文件时,生成protobuf数据格式的C++头文件和源文件,可以将对应的C++头文件和源文件虚幻引擎项目中,供远程调用使用。
需要说明的是,远程调用的服务内容可以是多样的,例如,远程调用服务的数据进行计算,那么在这种情况下,获取的远程服务内容就可以包括所需计算的数据以及所需要的计算方式。再例如,远程调用服务需要调用服务端对一个文件中的内容进行去重处理,那么在这种情况下,获取的远程服务内容就可以包括需要去重的文件,以及进行去重处理的调用指令。可以理解的是,对于其中的所需要调用的服务可以对应配置有一个唯一性的标识,那么在这种方式下,服务端在接收到远程服务调用请求后,通过判断其中的唯一性的标识就可以确定本次需要调用的服务是哪一个。
需要说明的是,远程服务内容表征的是请求信息中期望远程服务端执行何种动作,以及远程服务端在执行所指定的动作时以怎样的参数执行。例如,期望远程服务端对指定的文件的内容中重复的中文字符进行去重。那么这里的“去重”即为期望远程服务端执行的动作,而这里的“中文字符”就是期望远程服务端在去重过程中的所基于的参数。再例如,期望远程服务端调用指定的函数块进行数值计算,而这个函数块需要有一个输入值,那么这个“输出值”就是期望远侧好难过服务端调用指定的函数块进行数值计算过程中所基于的参数。
获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系,获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息,根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务,远程服务用于在被调用时对应的业务功能服务。本发明中,根据前端编写的脚本实现对后端的服务程序的运行,通过对路由信息与远程调用信息之间的配置关系,基于前端发送的路由信息可以调用对应的远程服务,完成后端服务程序的业务功能,只需要前端工程师编写配置文件,可以实现后端服务程序,从而提高了后端的开发效率。
参见图3,是本发明一实施例提供的一种基于前端的后端业务功能调用方法的流程示意图,如图3,该基于前端的后端业务功能调用方法可以包括以下步骤:
S301:获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系。
其中,上述步骤S301与上述步骤S201的内容相同,可参考上述步骤S201的描述,在此不再赘述。
S302:判断请求信息的协议类型,若协议类型为预设协议类型,将请求信息发送至后端。
S303:若协议类型与预设协议类型不同,将协议类型转换为预设协议类型,得到转换后的协议类型,将转换后的协议类型发送至后端。
本实施中,协议类型为HTTP协议、Dubbo协议、gRPC协议或新一代服务总线协议,预设协议类型为HTTP协议,若协议类型为预设HTTP协议,将基于前端发送的请求信息发送至后端,若协议类型与HTTP协议类型不同,将协议类型转换为HTTP协议类型,然后,将请求信息发送至后端。转换时,将请求信息次送入协议转换器,使得协议转换器完成请求信息的解码,再编码为预设协议类型相适配的新请求,并封装该新请求。
需要说明的是,协议转换器是将前端发送的请求转换为远程服务采用的协议。远程服务采用不同的框架实现,所采用的协议也各不相同,譬如RPC协议(Dubbo、gRPC)、新一代总线协议或者一些自定义协议等将前端的HTTP请求转换为服务对应的协议,并解码HTTP请求,再编码为远程服务对应协议的请求,间接调用远程服务(如SpringCloud服务、Dubbo服务、gRPC服务、新一代总线服务)。
S304:获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息。
S305:根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务。
其中,上述步骤S304至步骤S305与上述步骤S202至步骤S203的内容相同,可参考上述步骤S202至步骤S203的描述,在此不再赘述。
请参阅图4,图4是本发明实施例提供的一种基于前端的后端业务功能调用装置的结构示意图。本实施例中该终端包括的各单元用于执行图2至图3对应的实施例中的各步骤。具体请参阅图2至3以及图2至图3所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,后端业务功能调用装置40包括:解析模块41,目标路由信息确定模块42,调用模块43。
解析模块41,用于获取基于前端编写的配置文件,解析配置文件,得到至少一个路由信息与远程调用信息之间的对应关系。
目标路由信息确定模块42,用于获取前端发送的请求信息,解析请求信息,确定请求信息中的目标路由信息。
调用模块43,用于根据对应关系与目标路由信息,确定与目标路由信息对应的目标远程调用信息,基于目标远程调用信息,调用对应的远程服务,远程服务用于在被调用时对应的业务功能服务。
可选地,上述后端业务功能调用装置40还包括:
判断模块,用于判断请求信息的协议类型,若协议类型为预设协议类型,将基于前端发送的请求信息发送至后端。
转换模块,用于若协议类型与预设协议类型不同,将协议类型转换为预设协议类型,得到转换后的协议类型,将转换后的协议类型发送至后端。
可选地,上述解析模块41包括:
配置文件获取单元,用于获取基于预设脚本编写的配置文件。
路由信息与远程调用信息确定模块,用于解析配置文件,得到配置文件中路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称。
对应关系确定模块,用于根据路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称,确定路由信息与远程调用信息之间的对应关系。
可选地,上述目标路由信息确定模块42包括:
目标请求路径确定单元,用于根据前端发送的请求信息,通过后端接口解析请求信息,确定目标路由信息中对应的目标请求路径信息。
可选地,上述调用模块43包括:
目标远程调用信息确定单元,用于根据所述对应关系,对所述目标路由信息匹配对应的目标远程调用信息,确定所述目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称。
远程服务调用单元,用于根据远程调用的服务名称,调用对应的远程服务。
可选地,上述目标远程调用信息确定单元包括:
数据格式确定单元,用于根据对应关系,确定与目标路由信息匹配的目标远程调用的数据格式。
服务名称确定单元,用于根据目标远程调用的数据格式,确定目标远程调用的服务名称。
需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图5是本发明实施例提供的一种计算机设备的结构示意图。如图5所示,该实施例的计算机设备包括:至少一个处理器(图5中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个基于前端的后端业务功能调用方法实施例中的步骤。
该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图5仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本发明实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于前端的后端业务功能调用方法,其特征在于,所述后端业务功能调用方法包括:
获取基于前端编写的配置文件,解析所述配置文件,得到至少一个路由信息与远程调用信息之间的对应关系;
获取所述前端发送的请求信息,解析所述请求信息,确定所述请求信息中的目标路由信息;
根据所述对应关系与所述目标路由信息,确定与所述目标路由信息对应的目标远程调用信息,基于所述目标远程调用信息,调用对应的远程服务,所述远程服务用于在被调用时对应的业务功能服务。
2.如权利要求1所述的后端业务功能调用方法,其特征在于,所述获取基于前端编写的配置文件,解析所述配置文件,得到至少一个路由信息与远程调用信息之间的对应关系,包括:
获取基于预设脚本编写的配置文件;
解析所述配置文件,得到所述配置文件中路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称;
根据所述路由信息对应的请求方法、请求路径、远程调用信息对应的远程调用的数据格式与远程调用的服务名称,确定所述路由信息与远程调用信息之间的对应关系。
3.如权利要求2所述的后端业务功能调用方法,其特征在于,所述获取所述前端发送的请求信息,解析所述请求信息,确定所述请求信息中的目标路由信息,包括:
根据所述前端发送的请求信息,通过所述后端接口解析所述请求信息,确定所述目标路由信息中对应的目标请求路径信息。
4.如权利要求2所述的后端业务功能调用方法,其特征在于,所述根据所述对应关系与所述目标路由信息,确定与所述目标路由信息对应的目标远程调用信息,基于所述目标远程调用信息,调用对应的远程服务,包括:
根据所述对应关系,对所述目标路由信息匹配对应的目标远程调用信息,确定所述目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称;
根据所述远程调用的服务名称,调用对应的远程服务。
5.如权利要求4所述的后端业务功能调用方法,其特征在于,所述根据所述对应关系,对所述目标路由信息匹配对应的目标远程调用信息,确定所述目标远程调用信息对应的远程调用的数据格式与远程调用的服务名称,包括:
根据所述对应关系,确定与所述目标路由信息匹配的所述目标远程调用的数据格式;
根据所述目标远程调用的数据格式,确定所述目标远程调用的服务名称。
6.如权利要求1所述的后端业务功能调用方法,其特征在于,所述解析所述请求信息,确定所述请求信息中的目标路由信息之前,还包括:
判断所述请求信息的协议类型,若所述协议类型为预设协议类型,将所述请求信息发送至所述后端;
若所述协议类型与所述预设协议类型不同,将所述协议类型转换为所述预设协议类型,得到转换后的协议类型,将所述转换后的协议类型发送至所述后端。
7.一种基于前端的后端业务功能调用装置,其特征在于,所述后端业务功能调用装置包括:
解析模块,用于获取基于前端编写的配置文件,解析所述配置文件,得到至少一个路由信息与远程调用信息之间的对应关系;
目标路由信息确定模块,用于获取所述前端发送的请求信息,解析所述请求信息,确定所述请求信息中的目标路由信息;
调用模块,用于根据所述对应关系与所述目标路由信息,确定与所述目标路由信息对应的目标远程调用信息,基于所述目标远程调用信息,调用对应的远程服务,所述远程服务用于在被调用时对应的业务功能服务。
8.如权利要求7所述的后端业务功能调用装置,其特征在于,所述后端业务功能调用装置还包括:
判断模块,用于判断所述请求信息的协议类型,若所述协议类型为预设协议类型,将所述请求信息发送至所述后端;
转换模块,用于若所述协议类型与所述预设协议类型不同,将所述协议类型转换为所述预设协议类型,得到转换后的协议类型,将所述转换后的协议类型发送至所述后端。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的后端业务功能调用方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的后端业务功能调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310835735.5A CN116886747A (zh) | 2023-07-07 | 2023-07-07 | 基于前端的后端业务功能调用方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310835735.5A CN116886747A (zh) | 2023-07-07 | 2023-07-07 | 基于前端的后端业务功能调用方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116886747A true CN116886747A (zh) | 2023-10-13 |
Family
ID=88269150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310835735.5A Pending CN116886747A (zh) | 2023-07-07 | 2023-07-07 | 基于前端的后端业务功能调用方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116886747A (zh) |
-
2023
- 2023-07-07 CN CN202310835735.5A patent/CN116886747A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083225B (zh) | 在物联网平台中的数据处理方法、装置及物联网平台 | |
CN111600909A (zh) | 数据处理方法、装置、协议转换设备及存储介质 | |
CN110457144B (zh) | 一种实现前端应用的方法、装置、介质和设备 | |
KR20210040850A (ko) | 문서 분석 방법, 장치, 기기 및 저장 매체 | |
US8701129B2 (en) | Web API server program, web API publication method | |
CN109766148B (zh) | 用于处理接口方法调用的方法和装置 | |
CN111625585B (zh) | 硬件加速数据库的访问方法、装置、主机及存储介质 | |
CN111026634A (zh) | 一种接口自动化测试系统、方法、装置及存储介质 | |
CN113010827A (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN114117190A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN111857658A (zh) | 一种渲染动态组件的方法、装置、介质和电子设备 | |
CN111459497A (zh) | 基于webpack的资源包编译方法、系统、服务器和存储介质 | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
US20220245080A1 (en) | Method for communication of a componentized application, computing device and computer storage medium | |
CN116561013B (zh) | 基于目标服务框架的测试方法、装置、电子设备和介质 | |
CN113535419A (zh) | 一种服务编排方法和装置 | |
CN116886747A (zh) | 基于前端的后端业务功能调用方法、装置、设备及介质 | |
CN115374207A (zh) | 业务处理方法及装置、电子设备和计算机可读存储介质 | |
CN115061678A (zh) | 一种基于浏览器代理服务的代码编译方法及客户端 | |
CN109597952B (zh) | 网页信息处理方法、系统、电子设备和存储介质 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
US11689630B2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN112769975B (zh) | 一种数据集成方法、装置、服务器及存储介质 | |
CN116781586A (zh) | 一种gRPC流量解析方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |