GRPC服务层代码生成方法、装置、设备及存储介质与流程
grpc服务层代码生成方法、装置、设备及存储介质
技术领域
1.本发明涉及代码转换技术领域,尤其涉及一种grpc服务层代码生成方法、装置、设备及计算机可读存储介质。
背景技术:
2.微服务就是将需要完整开发的整个应用程序分成一个个的小服务进行分别相对独立的开发,在基于protobuf( google protocol buffer,谷歌公司内部的混合语言数据标准)协议通信的微服务开发过程中,定义完成protobuf文件之后,还需要再根据protobuf协议文件编写对应的grpc(google remote procedure call,谷歌远程过程调用)服务代码,从而实现客户端对服务端的相关方法的调用,满足用户使用应用的各种需求。
3.就目前protobuf协议文件对应的grpc服务代码而言,基本都是通过开发人员手动编写完成的,在开发人员确定了protobuf协议文件中的相关信息之后敲打出grpc服务所需要的各个代码,这种人工编写grpc服务代码的方式不仅效率低而且容易出错,大大延长了微服务的开发周期。
技术实现要素:
4.本发明的主要目的在于提供一种grpc服务层代码生成方法、装置、设备及计算机可读存储介质,旨在解决人工编写grpc服务代码的方式不仅效率低而且容易出错的技术问题。
5.为实现上述目的,本发明提供一种grpc服务层代码生成方法,所述grpc服务层代码生成方法包括以下步骤:确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。
6.可选地,所述确定所述protobuf文件中的第一目标参数的步骤,包括:解析所述protobuf文件以确定所述protobuf文件中的grpc服务名、grpc方法名、所述grpc方法名对应的请求参数以及所述grpc方法名对应的返回参数,将所述grpc服务名、所述grpc方法名、所述请求参数以及所述返回参数作为所述第一目标参数。
7.可选地,所述确定所述微服务代码仓库中第二目标参数的步骤,包括:确定所述微服务代码仓库对应的当前代码仓库地址;确定所述当前代码仓库地址中的代码仓库域名、代码仓库分组名以及应用名称;将所述代码仓库域名、所述代码仓库分组名以及所述应用名称作为第二目标参数。
8.可选地,所述确定当前服务项目的protobuf文件的步骤,包括:
确定所述当前服务项目的命令参数;确定所述命令参数中的protobuf文件目录和protobuf文件名;根据所述protobuf文件目录和所述protobuf文件名确定protobuf文件。
9.可选地,所述将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码的步骤,包括:确定预设的grpc服务层代码中与所述第一目标参数对应的第一占位符号,以及确定预设的grpc服务层代码中与所述第二目标参数对应的第二占位符号;将所述第一目标参数填充至所述第一占位符号,以及将所述第二目标参数填充至所述第二占位符号,并删除所述第一占位符号和所述第二占位符号。
10.可选地,所述将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码的步骤之后,所述方法还包括:基于预设的目录规范,将所述grpc服务层代码保存至对应的目标目录中;当接收到与所述grpc服务层代码对应的调用指令,执行所述目标目录中的grpc服务层代码以返回所述调用指令对应的调用结果。
11.可选地,所述grpc服务层代码模板包括一个grpc服务层模板和至少一个grpc方法模板,所述grpc服务层模板表征grpc服务层数据,所述grpc方法模板表征grpc方法数据,所述grpc服务层模板与所述grpc方法模板之间的占位符号不同。
12.此外,为实现上述目的,本发明还提供一种grpc服务层代码生成装置,所述grpc服务层代码生成装置包括:参数提取模块,用于确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;参数替换模块,用于将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。
13.此外,为实现上述目的,本发明还提供一种grpc服务层代码生成设备,包括处理器、存储器、以及存储在所述存储器上的可被所述处理器执行的grpc服务层代码生成程序,其中,所述grpc服务层代码生成程序被所述处理器执行时,实现如上所述的grpc服务层代码生成方法的步骤。
14.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有grpc服务层代码生成程序,其中,所述grpc服务层代码生成程序被处理器执行时,实现如上所述的grpc服务层代码生成方法的步骤。
15.本发明技术方案中的grpc服务层代码生成方法,通过步骤:确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。本发明解决了人工编写grpc服务代码的方式不仅效率低而且容易出错的技术问题。
16.核心地,本发明主要基于protobuf文件通过自动地确定和提取出其中的多个第一目标参数以及同时确定和提取出微服务代码仓库中多个第二目标参数,从而分别出了当前服务项目所对应的protobuf文件中和微服务代码仓库中的关键特征参数,将与其他服务
项目相区别的第一目标参数和所述第二目标参数自动地填充并替换预设的grpc服务层代码模板中对应的占位符号,grpc服务层代码模板中的其他基础代码保持不变,就能够快速高效地自动生成了与protobuf文件对应的grpc服务层代码,也即是与当前服务项目对应的grpc服务层代码,基础该grpc服务层代码就可以响应用户在客户端上各种远程调用操作。本发明通过将protobuf文件和微服务代码仓库中分别对应的关键特征参数填充到grpc服务层代码模板实现自动生成grpc服务层代码的方式,不仅大幅提高了grpc服务层代码生成效率,同时也解放了人力操作,避免人工编写代码出现的各种错误,统一了代码编写风格规范,极大地降低了后期对各种grpc服务层代码的维护成本。
附图说明
17.图1为本发明实施例方案涉及的grpc服务层代码生成设备的硬件运行环境的结构示意图;图2为本发明grpc服务层代码生成方法第一实施例的流程示意图;图3为本发明grpc服务层代码生成方法第一实施例步骤s10的细化流程图;图4为本发明grpc服务层代码生成方法第一实施例步骤s20的细化流程图;图5为本发明grpc服务层代码生成方法第一实施例步骤s30的细化流程图;图6为本发明grpc服务层代码生成方法涉及的一实施例的整体流程图;图7为本发明grpc服务层代码生成装置的框架结构示意图。
18.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
19.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.本发明技术方案综述:基于发现以及考虑到在mvc(model
–
view
–
controller,模型-视图-控制器)框架下,每个grpc服务代码逻辑都非常类似,包括编写protobuf对应的grpc方法、获取请求参数、调用业务逻辑服务代码,最后返回数据等,所以设计出本发明技术方案,本发明主要将分别从protobuf文件和微服务代码仓库中获取到的关键特征参数填充到grpc服务层代码模板对应位置的方式,实现了自动生成grpc服务层代码的过程,代替开发人员的手动编写代码,减少人力成本和人工编写过程出现的各种问题和漏洞,提高grpc服务层代码的编写效率和微服务项目的开发效率。
21.本发明实施例提出一种grpc服务层代码生成设备。
22.如图1所示,图1是本发明实施例方案涉及的grpc服务层代码生成设备的硬件运行环境的结构示意图。
23.如图1所示,该grpc服务层代码生成设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示器(display)、输入单元比如控制面板,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wifi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述
处理器1001的存储装置。作为一种计算机存储介质的存储器1005中可以包括grpc服务层代码生成程序。
24.本领域技术人员可以理解,图1中示出的硬件结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
25.继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、用户接口模块、网络通信模块以及grpc服务层代码生成程序。
26.在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的grpc服务层代码生成程序,并执行以下各个实施例中的步骤。
27.基于上述控制器的硬件结构,提出本发明grpc服务层代码生成方法的各个实施例。
28.本发明实施例提供一种grpc服务层代码生成方法。
29.请参照图2,图2为本发明grpc服务层代码生成方法第一实施例的流程示意图;在本发明第一实施例中,所述grpc服务层代码生成方法应用于grpc服务层代码生成设备;所述方法包括以下步骤:步骤s10,确定当前服务项目的protobuf文件和微服务代码仓库;在本实施例中,可以通过grpc服务层代码生成设备来实现,这里的grpc服务层代码生成设备可以为个人计算机、服务器、工作站等,也可以为其他可以进行编程的智能终端。
30.当前服务项目指的是微服务项目,可以为基于mvc(model
–
view
–
controller,模型-视图-控制器)框架下的微服务项目,当前服务项目对应生成的grpc服务层代码可以基于go语言进行汇编。
31.其中的protobuf文件也称为protobuf协议文件,为谷歌公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或rpc(remote procedure call,远程过程调用)数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
32.其中的微服务代码仓库指的是微服务项目所需要和所指向的代码仓库,用于保存各种微服务项目所需的源代码。
33.对于如何确定当前服务项目的protobuf文件,请参照图3,在一实施例中,所述步骤s10,确定当前服务项目的protobuf文件的步骤,包括:步骤s11,确定所述当前服务项目的命令参数;步骤s12,确定所述命令参数中的protobuf文件目录和protobuf文件名;步骤s13,根据所述protobuf文件目录和所述protobuf文件名确定protobuf文件。
34.在该实施例中,命令参数指的是根据当前服务项目中的protobuf文件生成对应的grpc服务层代码的命令(指令),一般不可或缺,命令参数可以由开发人员根据不同的protobuf文件或服务项目进行简单编码生成,也可以通过自动化工具直接生成。在命令参数中包含了protobuf文件的路径,即protobuf文件目录和protobuf文件名。在确定了命令参数中的protobuf文件目录和protobuf文件名之后,进而也就确定了当前服务项目中的protobuf文件所在的位置,具体地,可以先通过protobuf文件目录确定protobuf文件所在
的由各个protobuf文件组成的protobuf文件集合,根据protobuf文件名再从protobuf文件目录,也就是protobuf文件集合中确定该protobuf文件的所在。通过这种检索确定protobuf文件的方式可以代替开发人员手动查询protobuf文件,提高查和确定protobuf文件的效率。
35.步骤s20,确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;在本实施例中,protobuf文件中的第一目标参数可以为区别于其他protobuf文件的关键特征参数,通常情况下,各个protobuf文件都有较为标准的框架,不同之处往往在于一些其中的特定参数上。同理,对于微服务代码仓库而言,由于当前服务项目的特点,也可以从微服务代码仓库确定与其他服务项目不同的一些关键特征参数,即第二目标参数。
36.在一实施例中,所述步骤s20,确定所述protobuf文件中的第一目标参数的步骤,包括:解析所述protobuf文件以确定所述protobuf文件中的grpc服务名、grpc方法名、所述grpc方法名对应的请求参数以及所述grpc方法名对应的返回参数,将所述grpc服务名、所述grpc方法名、所述请求参数以及所述返回参数作为所述第一目标参数。
37.在该实施例中,可以通过开源的第三方工具:proto工具,来解析protobuf文件从而确定并提取出protobuf文件中的相关protobuf协议信息,即第一目标参数,在该实施例中,第一目标参数可以包括protobuf文件中的grpc服务名、grpc方法名、grpc方法名对应的请求参数以及grpc方法名对应的返回参数,其中的的grpc服务名对应当前服务项目的名称和相关微服务代码,grpc方法名对应grpc方法内容,即以什么样的逻辑方式、方式实现对远程过程调用功能。这些第一目标参数是protobuf文件区别于其他protobuf文件在微服务项目中的关键特征参数,也是当前服务项目区别于其他服务项目的关键特征参数。通过该实施例,能够高效精确地确定和提取出protobuf文件中相关关键特征参数,不需要人工进行核实并根据相关参数进行手动从零开始编码。
38.请参照图4,在另一实施例中,所述步骤s20,确定所述微服务代码仓库中第二目标参数的步骤,包括:步骤s21,确定所述微服务代码仓库对应的当前代码仓库地址;步骤s22,确定所述当前代码仓库地址中的代码仓库域名、代码仓库分组名以及应用名称;步骤s23,将所述代码仓库域名、所述代码仓库分组名以及所述应用名称作为第二目标参数。
39.在该实施例中,每一微服务项目都有其对应的微服务代码仓库,多个微服务项目也可以使用同一微服务代码仓库,对于如何在微服务代码仓库中确定当前服务项目对应的第二目标参数,可以先获取与当前服务项目关联的当前代码仓库地址,并解析该当前代码仓库地址,在该当前代码仓库地址中已经包括了代码仓库域名、代码仓库分组名以及应用名称等参数在内的相关信息,从而解析当前代码仓库地址就确定了包括当前服务项目对应的代码仓库域名、代码仓库分组名以及应用名称在内的第二目标参数。比如,在一示例中,通过第三方工具获取到当前代码仓库为git@git.mycaigou.com:ycg/golang/micro-ddd-demo.git ,经过解析之后,可以确定代码仓库域名为git.mycaigou.com,代码仓库分组名
为ycg/golang,应用名称为micro-ddd-demo。通过该实施例,能够高效精确地确定和提取微服务代码仓库对应的当前代码仓库地址,不需要人工进行核实并根据当前代码仓库地址进行手动从零开始编码。
40.步骤s30,将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。
41.在预设的grpc服务层代码模板中,有多个占位符号,各个占位符号没有实质内容。确定第一目标参数对应的占位符号以及确定确定第二目标参数对应的占位符号,将各个第一目标参数和第二目标参数分别填充至对应的占位符号所在的位置,并删除原来的占位符号中的原有内容(可以有表达各个占位符号含义的参数),从而基于第一目标参数和第二目标参数以及预设的grpc服务层代码模板就自动生成了与所述protobuf文件对应的grpc服务层代码,也即当前服务项目对应的grpc服务层代码。此外,对于预设的grpc服务层代码模板,可以参考业内通用规范结合具体的业务实际情况和编码习惯来制定,比如目录和文件名规范可以以小写英文字母命名,用下划线连接,还可以设定特定的文件名后缀,还可以一个服务层对应一个服务项目,不在服务层做业务编排的规则,在此不做限制。
42.请参照图5,在一实施例中,所述步骤s30,包括:步骤s31,确定预设的grpc服务层代码中与所述第一目标参数对应的第一占位符号,以及确定预设的grpc服务层代码中与所述第二目标参数对应的第二占位符号;步骤s32,将所述第一目标参数填充至所述第一占位符号,以及将所述第二目标参数填充至所述第二占位符号,并删除所述第一占位符号和所述第二占位符号。
43.在该实施例中,第一目标参数包括grpc服务名、grpc方法名、请求参数以及返回参数,其分别对应的第一占位符号可以包括:grpc服务名对应的{{.servername}}或者${servername}、grpc方法名对应的${rpcname}、请求参数对应的${requestname}以及返回参数对应的${returnname}。
44.第二目标参数包括的代码仓库域名、代码仓库分组名以及应用名称,其分别对应的第二占位符号可以包括:代码仓库域名对应的{{.gitaddr}}、代码仓库分组名对应的{{.groupname}}以及应用名称对应的{{.appname}}。
45.在确定各个第一目标参数分别对应的第一占位符号,以及各个第二目标参数分别对应的第二占位符号之后,分别将各个第一目标参数填充至对应的第一占位符号,将第二目标参数填充至对应的第二占位符号,并删除第一占位符号和第二占位符号中的原说明性的占位内容,比如{{.groupname}}中的groupname。通过该实施例,能够针对性对grpc服务层代码模板中相关参数(占位符号)进行准确高效地替换,实现了自动化生成grpc服务层代码。
46.为了进一步了解上述实施例,在一实施例中,所述grpc服务层代码模板包括一个grpc服务层模板和至少一个grpc方法模板,所述grpc服务层模板表征grpc服务层数据,所述grpc方法模板表征grpc方法数据,所述grpc服务层模板与所述grpc方法模板之间的占位符号不同。
47.在grpc服务层代码模板中除了一些固定的代码之外,还包括各种占位符号,如下表1所述:
表1在grpc方法模板中,除了一些固定的代码之外,还包括各种占位符号,如下表2所述:表2通过该实施例,将grpc服务层代码模板分为不同功能和不同占位符号的grpc服务层模板和至少一个grpc方法模板,能够精准地将获取到的各个目标参数填充替换到对应模板的对应的占位符号中,避免在通过参数填充替换占位符号以生成grpc服务层代码的过程出错,提高生成grpc服务层代码的稳定可靠性。
48.在一实施例中,所述步骤s30之后,所述方法还包括:步骤a,基于预设的目录规范,将所述grpc服务层代码保存至对应的目标目录中;步骤b,当接收到与所述grpc服务层代码对应的调用指令,执行所述目标目录中的grpc服务层代码以返回所述调用指令对应的调用结果。
49.在该实施例中,预设的目录规范可以根据实际需要进行设置,目的是将不同的grpc服务层代码有序地保存至对应的目标目录中,从而在接收到与所述grpc服务层代码对应的调用指令时,可以快速定位对应的grpc服务层代码之所在,进而以快速地响应用户在客户端上各种调用指令以返回给用户所需要的结果,实现了高效地远程调用。
50.本发明主要基于protobuf文件通过自动地确定和提取出其中的多个第一目标参数以及同时确定和提取出微服务代码仓库中多个第二目标参数,从而分别出了当前服务项目所对应的protobuf文件中和微服务代码仓库中的关键特征参数,将与其他服务项目相区别的第一目标参数和所述第二目标参数自动地填充并替换预设的grpc服务层代码模板
中对应的占位符号,grpc服务层代码模板中的其他基础代码保持不变,就能够快速高效地自动生成了与protobuf文件对应的grpc服务层代码,也即是与当前服务项目对应的grpc服务层代码,基础该grpc服务层代码就可以响应用户在客户端上各种远程调用操作。本发明通过将protobuf文件和微服务代码仓库中分别对应的关键特征参数填充到grpc服务层代码模板实现自动生成grpc服务层代码的方式,不仅大幅提高了grpc服务层代码生成效率,同时也解放了人力操作,避免人工编写代码出现的各种错误,统一了代码编写风格规范,极大地降低了后期对各种grpc服务层代码的维护成本。
51.为了进一步理解上述各个实施例,请参照图6,图6为本发明grpc服务层代码生成方法涉及的一实施例的整体流程图;如图6所示:1、获取服务信息(微服务代码仓库中第二目标参数);2、获取pbservice名(grpc服务名)、rpc方法名(可以为grpc方法名)、request和response参数(请求参数和返回参数);3、拉取预设的grpc服务层代码模板;4、参数替换,即将上述的各个参数替换到grpc服务层代码模板中对应的占位符号中;5、在参数替换之后,生成grpc服务层代码文件和对应的保存目录。
52.此外,本发明还提供一种grpc服务层代码生成装置,请参照图7,所述grpc服务层代码生成装置包括:参数提取模块a10,用于确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;参数替换模块a20,用于将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。
53.可选地,所述参数提取模块a10,还用于:解析所述protobuf文件以确定所述protobuf文件中的grpc服务名、grpc方法名、所述grpc方法名对应的请求参数以及所述grpc方法名对应的返回参数,将所述grpc服务名、所述grpc方法名、所述请求参数以及所述返回参数作为所述第一目标参数。
54.可选地,所述参数提取模块a10,还用于:确定所述微服务代码仓库对应的当前代码仓库地址;确定所述当前代码仓库地址中的代码仓库域名、代码仓库分组名以及应用名称;将所述代码仓库域名、所述代码仓库分组名以及所述应用名称作为第二目标参数。
55.可选地,所述参数提取模块a10,还用于:确定所述当前服务项目的命令参数;确定所述命令参数中的protobuf文件目录和protobuf文件名;根据所述protobuf文件目录和所述protobuf文件名确定protobuf文件。
56.可选地,所述参数替换模块a20,还用于:确定预设的grpc服务层代码中与所述第一目标参数对应的第一占位符号,以及确定预设的grpc服务层代码中与所述第二目标参数对应的第二占位符号;将所述第一目标参数填充至所述第一占位符号,以及将所述第二目标参数填充至
所述第二占位符号,并删除所述第一占位符号和所述第二占位符号。
57.可选地,所述参数替换模块a20,还用于:基于预设的目录规范,将所述grpc服务层代码保存至对应的目标目录中;当接收到与所述grpc服务层代码对应的调用指令,执行所述目标目录中的grpc服务层代码以返回所述调用指令对应的调用结果。
58.可选地,所述参数提取模块a10,还用于:所述grpc服务层代码模板包括一个grpc服务层模板和至少一个grpc方法模板,所述grpc服务层模板表征grpc服务层数据,所述grpc方法模板表征grpc方法数据,所述grpc服务层模板与所述grpc方法模板之间的占位符号不同。
59.本发明grpc服务层代码生成装置具体实施方式与上述grpc服务层代码生成方法各实施例基本相同,在此不再赘述。
60.此外,本发明还提供一种计算机可读存储介质。本发明计算机可读存储介质上存储有grpc服务层代码生成程序,其中,grpc服务层代码生成程序被处理器执行时,实现如上述的grpc服务层代码生成方法的步骤。
61.其中,grpc服务层代码生成程序被执行时所实现的方法可参照本发明grpc服务层代码生成方法的各个实施例,此处不再赘述。
62.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
63.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
64.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
65.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
66.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装
置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
67.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
68.以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
技术特征:
1.一种grpc服务层代码生成方法,其特征在于,所述grpc服务层代码生成方法包括以下步骤:确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。2.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述确定所述protobuf文件中的第一目标参数的步骤,包括:解析所述protobuf文件以确定所述protobuf文件中的grpc服务名、grpc方法名、所述grpc方法名对应的请求参数以及所述grpc方法名对应的返回参数,将所述grpc服务名、所述grpc方法名、所述请求参数以及所述返回参数作为所述第一目标参数。3.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述确定所述微服务代码仓库中第二目标参数的步骤,包括:确定所述微服务代码仓库对应的当前代码仓库地址;确定所述当前代码仓库地址中的代码仓库域名、代码仓库分组名以及应用名称;将所述代码仓库域名、所述代码仓库分组名以及所述应用名称作为第二目标参数。4.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述确定当前服务项目的protobuf文件的步骤,包括:确定所述当前服务项目的命令参数;确定所述命令参数中的protobuf文件目录和protobuf文件名;根据所述protobuf文件目录和所述protobuf文件名确定protobuf文件。5.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码的步骤,包括:确定预设的grpc服务层代码中与所述第一目标参数对应的第一占位符号,以及确定预设的grpc服务层代码中与所述第二目标参数对应的第二占位符号;将所述第一目标参数填充至所述第一占位符号,以及将所述第二目标参数填充至所述第二占位符号,并删除所述第一占位符号和所述第二占位符号。6.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码的步骤之后,所述方法还包括:基于预设的目录规范,将所述grpc服务层代码保存至对应的目标目录中;当接收到与所述grpc服务层代码对应的调用指令,执行所述目标目录中的grpc服务层代码以返回所述调用指令对应的调用结果。7.如权利要求1所述的grpc服务层代码生成方法,其特征在于,所述grpc服务层代码模板包括一个grpc服务层模板和至少一个grpc方法模板,所述grpc服务层模板表征grpc服务层数据,所述grpc方法模板表征grpc方法数据,所述grpc服务层模板与所述grpc方法模板之间的占位符号不同。
8.一种grpc服务层代码生成装置,其特征在于,所述grpc服务层代码生成装置包括:参数提取模块,用于确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;参数替换模块,用于将所述第一目标参数和所述第二目标参数填充至预设的grpc服务层代码模板以得到与所述protobuf文件对应的grpc服务层代码。9.一种grpc服务层代码生成设备,其特征在于,所述grpc服务层代码生成设备包括处理器、存储器、以及存储在所述存储器上的可被所述处理器执行的grpc服务层代码生成程序,其中,所述grpc服务层代码生成程序被所述处理器执行时,实现如权利要求1至7中任一项所述的grpc服务层代码生成方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有grpc服务层代码生成程序,其中,所述grpc服务层代码生成程序被处理器执行时,实现如权利要求1至7中任一项所述的grpc服务层代码生成方法的步骤。
技术总结
本发明公开了一种GRPC服务层代码生成方法、装置、设备及存储介质,属于代码转换技术领域。所述方法包括步骤:确定当前服务项目的protobuf文件和微服务代码仓库;确定所述protobuf文件中的第一目标参数以及确定所述微服务代码仓库中第二目标参数;将所述第一目标参数和所述第二目标参数填充至预设的GRPC服务层代码模板以得到与所述protobuf文件对应的GRPC服务层代码。通过将本发明,大幅提高了GRPC服务层代码生成效率,避免人工编写代码出现的各种错误,统一了代码编写风格规范,极大地降低了后期对各种GRPC服务层代码的维护成本。成本。成本。