CN112363699B - 一种应用于多语言开发平台的交互方法及装置 - Google Patents

一种应用于多语言开发平台的交互方法及装置 Download PDF

Info

Publication number
CN112363699B
CN112363699B CN202011280129.4A CN202011280129A CN112363699B CN 112363699 B CN112363699 B CN 112363699B CN 202011280129 A CN202011280129 A CN 202011280129A CN 112363699 B CN112363699 B CN 112363699B
Authority
CN
China
Prior art keywords
module
service
development platform
language
language development
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.)
Active
Application number
CN202011280129.4A
Other languages
English (en)
Other versions
CN112363699A (zh
Inventor
欧腾
林永坡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PCI Technology Group Co Ltd
Original Assignee
PCI Technology Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PCI Technology Group Co Ltd filed Critical PCI Technology Group Co Ltd
Priority to CN202011280129.4A priority Critical patent/CN112363699B/zh
Publication of CN112363699A publication Critical patent/CN112363699A/zh
Application granted granted Critical
Publication of CN112363699B publication Critical patent/CN112363699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • G06F8/4435Detection or removal of dead or redundant code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种应用于多语言开发平台的交互方法及装置。本申请实施例提供的技术方案,通过多语言开发平台的公共接口将获取到的服务调用端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式实现了多种语言之间的数据交互与接口调用,大大降低开发人员的开发调整难度,使得开发人员只需要专注于具体的功能实现即可,而无需特别关注于不同语言之间的接口对接的问题,降低各个语言之间的耦合性,减少对接代码的冗余,提高开发人员整体的工作效率。

Description

一种应用于多语言开发平台的交互方法及装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种应用于多语言开发平台的交互方法及装置。
背景技术
现有的联网平台由前端node.js/javascript语言开发页面,java语言开发后端应用以及程序监控,播放控件由C#/flash语言开发实现,进行取流以及国标对接时则需要C/C++语言来实现相应的功能。多种程序语言之间交互错综复杂,数据流向环节多样,特别是当两种不同语言类型的功能模块进行对接时,需要适配双方各自语言的接口内容,进而使得接口对接也较为不便。并且为了实现代码的对接会在前端与后端均匹配对应的代码内容,这样会使得对接代码产生冗余的情况,增加了前端和后端程序人员的工作量,使得整体的工作效率不高以及进行后期项目调整变得较为困难。因此设计一种能够更加方便对接多种应用语言的平台系统成为本领域技术人员亟待解决的技术问题。
发明内容
本申请实施例提供一种应用于多语言开发平台的交互方法及装置,能够通过多语言开发平台的公共接口将获取到的前端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式能够大大降低开发人员的开发调整难度,使得开发人员只需要专注于功能实现即可,而无需特别关注于不同语言之间的接口对接,降低各种语言之间的耦合性,提高开发人员整体的工作效率。
在第一方面,本申请实施例提供了一种应用于多语言开发平台的交互方法,包括:
接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
将所述Json报文转换为相应的服务运行模块所需的报文参数;
根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
将所述服务内容返回至所述服务调用端。
进一步的,所述接收服务调用端发送的服务调用参数,包括:
接收服务调用端发送的服务调用参数,所述服务调用参数依据服务调用端触发的功能模块生成。
进一步的,在所述接收服务调用端发送的服务调用参数之前,还包括:
服务调用端响应于用户触发的页面处理请求;
服务调用端根据所述页面处理请求获取多语言开发平台的目标交互页面,所述目标交互页面包括预先缓存于所述服务调用端本地的页面。
进一步的,所述多语言开发平台用于提供至少一种功能模块,所述功能模块在多语言开发平台上注册生成,所述多语言开发平台还用于提供功能模块所需的运行环境以及模块状态监测。
进一步的,所述功能模块在多语言开发平台上注册生成,具体包括如下步骤:
接收用户在开发平台页面上输入的功能模块的注册接口请求;
通过服务发现匹配与所述注册接口请求对应的语言环境,并运行所述功能模块对应的脚本以进行自动化测试;
将通过自动化测试的功能模块在多语言开发平台上进行显示以提供相应的接口交互实现。
进一步的,所述功能模块在多语言开发平台上通过公共规范框架注册生成,所述公共规范框架的报文格式设置为Json报文格式。
进一步的,所述公共规范框架还包括统一的http/https协议交互方式、代码命名规范和接口注释以及参数说明规范,所述代码命名规范包括大驼峰式命名规范。
进一步的,在所述接收用户在开发平台页面上填写的注册接口之前,还包括:
通过代码引擎模块对相应的功能模块进行代码走查以实现对所述功能模块的代码特性检测;所述代码引擎模块包括多种代码走查工具。
进一步的,所述代码走查工具包括flake8、jshint、checkstyle及splint;
所述代码引擎模块还包括规则定制模块,所述规则定制模块采用Json格式来统一定义规则,所述规则定制模块用于自动生成对应各个代码走查工具所需的配置文件。
在第二方面,本申请实施例提供了一种应用于多语言开发平台的交互装置,包括:
接收模块:用于接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
转换模块:用于将所述Json报文转换为相应的服务运行模块所需的报文参数;
运行模块:用于根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
数据返回模块:用于将所述服务内容返回至所述服务调用端。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的应用于多语言开发平台的交互方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的应用于多语言开发平台的交互方法。
本申请实施例通过多语言开发平台的公共接口将获取到的服务调用端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式实现了多种语言之间的数据交互与接口调用,大大降低开发人员的开发调整难度,使得开发人员只需要专注于具体的功能实现即可,而无需特别关注于不同语言之间的接口对接的问题,降低各种语言之间的耦合性,减少对接代码的冗余,提高开发人员整体的工作效率。
附图说明
图1是本申请实施例提供的一种应用于多语言开发平台的交互方法的流程图;
图2是本申请实施例提供的在服务调用端进行页面交互的流程示意图;
图3是本申请实施例提供的功能模块注册的流程示意图;
图4是本申请实施例提供的一种应用于多语言开发平台的交互装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
现有的联网平台由前端node.js/javascript语言开发页面,java语言开发后端应用以及程序监控,播放控件由C#/flash语言开发实现,进行取流以及国标对接时则需要C/C++语言来实现相应的功能。多种程序语言之间交互错综复杂,数据流向环节多样,特别是当两种不同语言类型的功能模块进行对接时,需要适配双方各自语言的接口内容,进而使得接口对接也较为不便。基于此,本申请实施例通过多语言开发平台的公共接口将获取到的服务调用端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式实现了多种语言之间的数据交互与接口调用,大大降低开发人员的开发调整难度,使得开发人员只需要专注于具体的功能实现即可,而无需特别关注于不同语言之间的接口对接的问题,降低各种语言之间的耦合性,减少对接代码的冗余,提高开发人员整体的工作效率。
图1给出了本申请实施例提供的一种应用于多语言开发平台的交互方法的流程图,本实施例中提供的应用于多语言开发平台的交互方法可以由应用于多语言开发平台的交互设备执行,该应用于多语言开发平台的交互设备可以通过软件和/或硬件的方式实现,该应用于多语言开发平台的交互设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该应用于多语言开发平台的交互设备可以是电脑,手机,平板或后台服务器等。
下述以后台服务器为执行应用于多语言开发平台的交互方法的设备为例,进行描述。参照图1,该应用于多语言开发平台的交互方法具体包括:
S101:接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文。
本步骤主要是接收服务调用端发送的相关接口参数,这里的接口参数为服务调用端触发产生,也即是用户使用端或者客户端触发的操作;比如在联网平台处触发了获取某个街道视频这样的操作,由于现阶段的联网平台应用界面由Java语言开发,对应触发相应的操作时,也即是以Java为基础产生对应的服务调用参数,而后端的取流模块则由C++代码编写完成,此时如果直接将Java产生的参数与C++编写完成的模块进行接口对接,则容易产生不匹配的情况,因此,需要设置对应的接口来将其进行对接。当为了实现Java与C++语言对接时,需要做如下几步:第一、声明本地变量;第二、生成头文件;第三生成根文件;第四、编写C++程序;第五、编译DLL文件。通过上述步骤来实现Java和C++语言的接口对接,但是上述方式就容易产生一个问题就是当功能变换时,对应的也需要调整相应的代码。但是在本申请实施例中则无需进行上述程序的编写,Java可以直接在其输出端输出相应的参数,然后开发平台会将其参数格式转换为Json报文格式,由于各个语言都具有Json库,则其均可以实现对Json报文格式的内容的解析,因此通过对相应参数进行Json报文转化来实现信息交互。
在本申请实施例中,针对于C语言进行Json库的使用进行详细说明。对于C语言来说是没有字典这样的结构的,所以对于解析json格式的数据来说并不好解析,但是有些时候又会需要处理这样的数据格式,这里就有一个解析json的函数库可以给我们使用了。这个函数库就是cJSON了。只要下载了相应的资源之后,就可以使用对应的Json库,在使用时可以只需要其中的cJSON.c和cJSON.h文件就可以了,只需要将cJSON和自己的main文件一起编译即可。
具体的,主要函数接口介绍:
在具体实现时有个很重要的结构体是需要用到的就是cJSON结构体如下:
typedef struct cJSON{
struct cJSON*next,*prev; /*遍历数组或对象链的前向或后向链表指针*/
struct cJSON*child; /*数组或对象的孩子节点*/
int type; /*key的类型*/
char*valuestring; /*字符串值*/
int valueint; /*整数值*/
double valuedouble; /*浮点数值*/
char*string; /*key的名字*/
}cJSON;
上述结构体的具体说明:
1、cJSON是使用链表来存储数据的,其访问方式很像一颗树。每一个节点可以有兄弟节点,通过next/prev指针来查找,它类似双向链表;每个节点也可以有子节点,通过child指针来访问,进入下一层。只有节点是对象或数组时才可以有子节点。
2、type是键(key)的类型,一共有7种取值,分别是:False,Ture,NULL,Number,String,Array,Object。若是Number类型,则valueint或valuedouble中存储着值。若期望的是int,则访问valueint,若期望的是double,则访问valuedouble,可以得到值。若是String类型的,则valuestring中存储着值,可以访问valuestring得到值。
3、string中存放的是这个节点的名字,可理解为key的名称。
重要的接口函数:
1.cJSON*cJSON_Parse(const char*value);
解析JSON数据包,并按照cJSON结构体的结构序列化整个数据包。可以看做是获取一个句柄。
2.cJSON*cJSON_GetObjectItem(cJSON*object,const char*string);
功能:获取json指定的对象成员
参数:*objec:第一个函数中获取的句柄。
string:需要获取的对象
返回值:这个对象成员的句柄如果json格式的对象成员直接就是字符串那么就可以直接通过结构体中的valuestring元素来获取这个成员的值。
3.cJSON*cJSON_GetArrayItem(cJSON*array,int item);
功能:有可能第二个函数中获取到的是成员对象值是一个数组,那么就需要用到这个函数。用来获取这个数组指定的下标对象
参数:*array:传入第二步中返回的值
item:想要获取这个数组的下标元素
返回值:这个数组中指定下标的对象。然后在对这个返回值重复使用第二步函数就可以获取到各个成员的值了。
也就是说对象是数组的比是字符串的要多用一个cJSON_GetArrayItem函数,其他的没区别。
4.cJSON_Delete()
用来释放你第一步获取的句柄,来释放整个内存。用在解析完后调用。
通过上述方式可以实现C语言等对Json格式的数据的解析。同样的,Java语言或者C++语言也可以依照其实际代码来进行相应的Json数据解析。由于多种编程语言均具有Json库,因此可以更加方便的对各种数据进行解析调用。
S102:将所述Json报文转换为相应的服务运行模块所需的报文参数。
由于多种语言均具有Json库,也即是其均可以实现对Json报文的解析,因此,在本申请实施例中其均可以将Json报文转换为后端服务运行模块所需的报文参数以供其进行编译再进行操作。
S103:根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容。
本步骤主要是为了调用到具体的服务内容,比如触发的取流模块的相应功能时候,取流模块则为具体的服务运行模块,由于获取到前端传输的数据内容,后端取流模块对其传输的数据内容进行解析以得到对应的内容,对于取流模块,上述服务内容也即是指的是具体某个摄像头获取到的视频流。
S104:将所述服务内容返回至所述服务调用端。
将得到的视频流传回至服务调用端来进行显示。
本申请实施例的方案中“多语言”重点不在于多语言“代码编译”整合,而在于多语音开发“交互”整合。举例说明,联网平台新版本的ISVS服务模块(标准视频流服务模块)使用的是C语言实现。上述服务器模块主要有两方面:一方面多语言平台提供ISVS模块所需运行环境以及模块状态检测等。ISVS模块的实现首先需要调用多语言平台中java提供的设备编码/ip、密码等验证功能接口,而且供应者也需要在多语言平台注册自身的功能接口供给第三方使用。另一方面可以是C#语言的客户端,或者BS浏览器访问获取摄像机播放标准视频的url,这是多方在多语言应用平台交互的一个过程。最终的视频播放的哪一个浏览器或者是客户端不需要知道url这个接口究竟是谁实现的,或者是java,或者是C++也无需知晓。接口调用人员只需要知晓其具有这样的一个功能接口即可,无需知道具体采用什么语言编译,也就使得用户不再需要一对一再定制化等强制耦合工作,节约开发人员工作量。本申请实施例中的ISVS模块指的即是标准服务流视频模块。
更为优选的,所述接收服务调用端发送的服务调用参数,包括:
接收服务调用端发送的服务调用参数,所述服务调用参数依据服务调用端触发的功能模块生成。
上述服务器参数均是在服务调用端产生的,比如在客户端(服务调用端)点击了数据统计,由于上述数据查询已经封装在开发平台内,当点击上述模块时,则可以触发产生相应的数据调用至后端来产生信息的交互。
进一步的,图2是本申请实施例提供的在服务调用端进行页面交互的流程示意图,如图2所示,在所述接收服务调用端发送的服务调用参数之前,还包括:
S100a:服务调用端响应于用户触发的页面处理请求;
S100b:服务调用端根据所述页面处理请求获取多语言开发平台的目标交互页面,所述目标交互页面包括预先缓存于所述服务调用端本地的页面。
上述为具体的页面显示内容,由于所有的页面显示内容已经预先存储在客户端处,所以在用户点击进入相应的应用页面时,则将预先存储的交互页面在服务调用端本地进行显示。
进一步的,图3是本申请实施例提供的功能模块注册的流程示意图,如图3所示,所述多语言开发平台用于提供至少一种功能模块,所述功能模块在多语言开发平台上注册生成,所述多语言开发平台还用于提供功能模块所需的运行环境以及模块状态监测;
所述功能模块在多语言开发平台上注册生成包括如下步骤:
S101a:接收用户在开发平台页面上输入的功能模块的注册接口请求;
S101b:通过服务发现匹配与所述注册接口请求对应的语言环境,并运行所述功能模块对应的脚本以进行自动化测试;
S101c:将通过自动化测试的功能模块在多语言开发平台上进行显示以提供相应的接口交互实现。
上述步骤主要提供了功能模块注册的流程示意图,具体的,在应用平台页面可填写所需注册接口,选择主机提供程序以进行编译以及脚本运行,应用提供简单访问测试功能。具体实施时,语言开发用户可以暴露自身功能已有接口,任何其他用户均可对接该接口,并通过开发平台还可以提供接口版本管理、接口检索-约定大于配置(根据名称自动追踪)、接口服务发现等功能。
对所有注册完成的功能模块进行显示,在相应的应用列表处显示所有的功能模块,比如功能模块包括有视频调用、统计查询、视频播放、报警处理、设备检测、电子地图等等功能模块。具体的,页面已可见接口即所得接口,具体实现无需关注。只需要按照接口注释进行调用即可。
进一步的,所述功能模块在多语言开发平台上通过公共规范框架注册生成,所述公共规范框架的报文格式设置为Json报文格式。所述公共规范框架还包括统一的http/https协议交互方式、代码命名规范和接口注释以及参数说明规范,所述代码命名规范包括大驼峰式命名规范。
通过上述公共规范框架的设置,进而提供一种公共框架来提供给外部使用,上述公共规范框架约定了一种接口对接模式,使得用户能够较为方便的进行接口对接交互。本申请实施例中的大驼峰式命名规范为每一个单字的首字母都采用大写字母,比如WhatYouName,上述表示即为大驼峰式命名规范。
以现如今联网产品举例,现阶段联网平台应用界面由java语言开发与取流模块以及国标交互模块由C++代码交换,接口耦合性质强烈,如果C++代码更换,涉及到相关功能的java程序必须做出调整,再比如需求只限于取流模块,不需要应用这时候也无法单方面解耦并使用。所以,不同语言在多语言开发公共平台建设的是自身提供功能的接口,就算是需要别的语言来实现自身功能的,也同样通过已经注册暴露的接口交互实现。公共规范框架具体包括:1.接口形式为json报文;2.统一http/https协议交互;3.代码命名规范-英文大驼峰;4.接口注释,参数说明规范等。上述功能注册需要先完成编译再进行操作。也即是多语言功能模块分别新建各自的接口,编译自身运行的文件然后向多语言开发平台进行注册服务,每个服务提供自己的接口,接口用来输出自己的运行结果,接口在平台上按照公共规范进行注册,运行结果在平台上按照公共规范输出,其他服务直接访问接口进行调用即可。来降低语言之间耦合性,增加程序透明度。本申请实施例的方案还可以隐藏多余调用链路统一通过服务器执行相关自动化脚本或者辅助预案计划执行功能代码实现。
进一步的,在所述接收用户在开发平台页面上填写的注册接口之前,还包括:
通过代码引擎模块对相应的功能模块进行代码走查以实现对所述功能模块的代码特性检测;所述代码引擎模块包括多种代码走查工具。
通过代码走查工具对功能模块的程序代码进行检查,也即是除了关注程序的功能和性能之外,还可以实现对程序安全性、内存泄漏、命名可读性和一致性进行检查,通过上述方式保证整个功能模块运行更加顺畅。
进一步的,所述代码走查工具包括flake8、jshint、checkstyle及splint;
所述代码引擎模块还包括规则定制模块,所述规则定制模块采用Json格式来统一定义规则,所述规则定制模块用于自动生成对应各个代码走查工具所需的配置文件。
当前各种代码走查工具基本上只针对某一种编程语言效果比较好,或者只支持一种语言;也有通用的代码走查工具(代码格式检查工具),但是对于每种编程语言又不够细致。通过上述匹配多种代码走查工具进行代码检测使得整体检测更为的准确以及合理,降低了代码走查难度,提高工作效率。
本申请实施例的方案中多语言的重点不在于对于多语言进行代码编译整合,而是在于多语言的交互整合;即使当出现采用两种不同的语言生成功能模块的时候进行接口对接时,按照现有的方式必须是在两端编写对应的接口代码来实现交互,但是通过本申请实施例的方案则无需对两端的代码进行任何改进,只要其输出对应的参数,通过本实施例的多语言开发平台则可以对相应参数进行转化来与后续的功能模块对接;从而实现信息的交互,使得用户可以从无声无息中体会到开发平台使用的便捷。
本申请实施例通过多语言开发平台的公共接口将获取到服务调用端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式实现了多种语言之间的数据交互与接口调用,大大降低开发人员的开发调整难度,使得开发人员只需要专注于具体的功能实现即可,而无需特别关注于不同语言之间的接口对接的问题,降低各种语言之间的耦合性,减少对接代码的冗余,提高开发人员整体的工作效率。
在上述实施例的基础上,图4为本申请实施例提供的一种应用于多语言开发平台的交互装置的结构示意图。参考图4,本实施例提供的应用于多语言开发平台的交互装置具体包括:
接收模块21:用于接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
转换模块22:用于将所述Json报文转换为相应的服务运行模块所需的报文参数;
运行模块23:用于根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
数据返回模块24:用于将所述服务内容返回至所述服务调用端。
本申请实施例通过多语言开发平台的公共接口将获取到服务调用端传输的数据转换为Json报文,并根据所述Json报文转换为与后端功能模块所使用语言对应的报文格式,从而完成对应的数据交互,通过上述方式实现了多种语言之间的数据交互与接口调用,大大降低开发人员的开发调整难度,使得开发人员只需要专注于具体的功能实现即可,而无需特别关注于不同语言之间的接口对接的问题,降低各种语言之间的耦合性,减少对接代码的冗余,提高开发人员整体的工作效率。
本申请实施例提供的应用于多语言开发平台的交互装置可以用于执行上述实施例提供的应用于多语言开发平台的交互方法,具备相应的功能和有益效果。
图5是本申请实施例提供的一种电子设备的结构示意图,参照图5,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。该电子设备中处理器31的数量可以是一个或者多个,该电子设备中的存储器32的数量可以是一个或者多个。该电子设备的处理器31、存储器32、通信模块33、输入装置34及输出装置35可以通过总线或者其他方式连接。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的应用于多语言开发平台的交互方法对应的程序指令/模块(例如,应用于多语言开发平台的交互装置中的接收模块21、转换模块22、运行模块23和数据返回模块24)。存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块33用于进行数据传输。
处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的应用于多语言开发平台的交互方法。
输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。
上述提供的电子设备可用于执行上述实施例提供的应用于多语言开发平台的交互方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器31执行时用于执行一种应用于多语言开发平台的交互方法,该应用于多语言开发平台的交互方法包括:
接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
将所述Json报文转换为相应的服务运行模块所需的报文参数;
根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
将所述服务内容返回至所述服务调用端。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器31执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用于多语言开发平台的交互方法,还可以执行本申请任意实施例所提供的应用于多语言开发平台的交互方法中的相关操作。
上述实施例中提供的应用于多语言开发平台的交互装置、存储介质及电子设备可执行本申请任意实施例所提供的应用于多语言开发平台的交互方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的应用于多语言开发平台的交互方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

Claims (12)

1.一种应用于多语言开发平台的交互方法,其特征在于,包括:
接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
将所述Json报文转换为相应的服务运行模块所需的报文参数,其中,包括将cJSON和自身main文件一同编译,用于解析Json报文;
根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
将所述服务内容返回至所述服务调用端。
2.根据权利要求1所述的应用于多语言开发平台的交互方法,其特征在于,所述接收服务调用端发送的服务调用参数,包括:
接收服务调用端发送的服务调用参数,所述服务调用参数依据服务调用端触发的功能模块生成。
3.根据权利要求2所述的应用于多语言开发平台的交互方法,其特征在于,在所述接收服务调用端发送的服务调用参数之前,还包括:
服务调用端响应于用户触发的页面处理请求;
服务调用端根据所述页面处理请求获取多语言开发平台的目标交互页面,所述目标交互页面包括预先缓存于所述服务调用端本地的页面。
4.根据权利要求1所述的应用于多语言开发平台的交互方法,其特征在于,所述多语言开发平台用于提供至少一种功能模块,所述功能模块在多语言开发平台上注册生成,所述多语言开发平台还用于提供功能模块所需的运行环境以及模块状态监测。
5.根据权利要求4所述的应用于多语言开发平台的交互方法,其特征在于,所述功能模块在多语言开发平台上注册生成,具体包括如下步骤:
接收用户在开发平台页面上输入的功能模块的注册接口请求;
通过服务发现匹配与所述注册接口请求对应的语言环境,并运行所述功能模块对应的脚本以进行自动化测试;
将通过自动化测试的功能模块在多语言开发平台上进行显示以提供相应的接口交互实现。
6.根据权利要求4所述的应用于多语言开发平台的交互方法,其特征在于,所述功能模块在多语言开发平台上通过公共规范框架注册生成,所述公共规范框架的报文格式设置为Json报文格式。
7.根据权利要求6所述的应用于多语言开发平台的交互方法,其特征在于,所述公共规范框架还包括统一的http/https协议交互方式、代码命名规范和接口注释以及参数说明规范,所述代码命名规范包括大驼峰式命名规范。
8.根据权利要求5所述的应用于多语言开发平台的交互方法,其特征在于,在所述接收用户在开发平台页面上填写的注册接口之前,还包括:
通过代码引擎模块对相应的功能模块进行代码走查以实现对所述功能模块的代码特性检测;所述代码引擎模块包括多种代码走查工具。
9.根据权利要求8所述的应用于多语言开发平台的交互方法,其特征在于,所述代码走查工具包括flake8、jshint、checkstyle及splint;
所述代码引擎模块还包括规则定制模块,所述规则定制模块采用Json格式来统一定义规则,所述规则定制模块用于自动生成对应各个代码走查工具所需的配置文件。
10.一种应用于多语言开发平台的交互装置,其特征在于,包括:
接收模块:用于接收服务调用端发送的服务调用参数,并将所述服务调用参数转换为Json报文;
转换模块:用于将所述Json报文转换为相应的服务运行模块所需的报文参数,其中,包括将cJSON和自身main文件一同编译,用于解析Json报文;
运行模块:用于根据所述服务运行模块中的启动脚本启动相应语言环境并运行所述服务运行模块以得到对应的服务内容;
数据返回模块:用于将所述服务内容返回至所述服务调用端。
11.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9任一所述的应用于多语言开发平台的交互方法。
12.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-9任一所述的应用于多语言开发平台的交互方法。
CN202011280129.4A 2020-11-16 2020-11-16 一种应用于多语言开发平台的交互方法及装置 Active CN112363699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011280129.4A CN112363699B (zh) 2020-11-16 2020-11-16 一种应用于多语言开发平台的交互方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011280129.4A CN112363699B (zh) 2020-11-16 2020-11-16 一种应用于多语言开发平台的交互方法及装置

Publications (2)

Publication Number Publication Date
CN112363699A CN112363699A (zh) 2021-02-12
CN112363699B true CN112363699B (zh) 2022-08-02

Family

ID=74516202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011280129.4A Active CN112363699B (zh) 2020-11-16 2020-11-16 一种应用于多语言开发平台的交互方法及装置

Country Status (1)

Country Link
CN (1) CN112363699B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645303B (zh) * 2021-08-11 2024-04-23 曙光信息产业(北京)有限公司 数据传输方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101949154B1 (ko) * 2018-09-17 2019-02-18 (주)투비소프트 Json을 이용하여 데이터셋의 구조를 변환하는 전자 장치 및 그의 동작 방법
CN111026396A (zh) * 2019-12-13 2020-04-17 北京小米移动软件有限公司 页面渲染方法、装置、电子设备及存储介质
CN111600909A (zh) * 2020-06-24 2020-08-28 腾讯科技(深圳)有限公司 数据处理方法、装置、协议转换设备及存储介质
CN111611769A (zh) * 2019-02-25 2020-09-01 北京嘀嘀无限科技发展有限公司 一种多种语言模型的文本转换方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222365B (zh) * 2008-01-23 2010-12-08 中兴通讯股份有限公司 一种类c结构接口报文处理方法
CN108322497A (zh) * 2017-01-18 2018-07-24 阿里巴巴集团控股有限公司 跨终端数据传输方法、装置、客户端、服务器及系统
CN109766099B (zh) * 2018-12-11 2020-07-31 浙江口碑网络技术有限公司 前端源码编译方法、装置、存储介质及计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101949154B1 (ko) * 2018-09-17 2019-02-18 (주)투비소프트 Json을 이용하여 데이터셋의 구조를 변환하는 전자 장치 및 그의 동작 방법
CN111611769A (zh) * 2019-02-25 2020-09-01 北京嘀嘀无限科技发展有限公司 一种多种语言模型的文本转换方法及装置
CN111026396A (zh) * 2019-12-13 2020-04-17 北京小米移动软件有限公司 页面渲染方法、装置、电子设备及存储介质
CN111600909A (zh) * 2020-06-24 2020-08-28 腾讯科技(深圳)有限公司 数据处理方法、装置、协议转换设备及存储介质

Also Published As

Publication number Publication date
CN112363699A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
JP7371141B2 (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
CN107133267B (zh) 查询elasticsearch集群的方法、装置、电子设备和可读存储介质
US7490167B2 (en) System and method for platform and language-independent development and delivery of page-based content
CN110198247B (zh) 接口测试方法及系统
US7992127B2 (en) Method and system of encapsulating web site transactions for computer-aided generation of web services
US8751558B2 (en) Mashup infrastructure with learning mechanism
CN102325191B (zh) 一种全自动的页面无刷新处理方法及框架
US7441010B2 (en) Method and system for determining the availability of in-line resources within requested web pages
US8370859B2 (en) Creating web services from an existing web site
US11093222B2 (en) Generating interfaces from annotated entity definitions for developing applications
US8924867B2 (en) Web interface for remote platform build
CN112579097A (zh) 软件项目构建方法、装置、存储介质及电子设备
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN114706579A (zh) 页面开发方法、装置、服务器及存储介质
CN112882844A (zh) 基于网络前后端的联调方法、装置及存储介质
CN112363699B (zh) 一种应用于多语言开发平台的交互方法及装置
US11194602B2 (en) Runtime execution of entities and services in an application object runtime environment
GB2423844A (en) Converting web based applications into component based applications with XML data elements and Java script workflow elements
CN113778897B (zh) 接口的自动测试方法、装置、设备及存储介质
CN107239265B (zh) Java函数与C函数的绑定方法及装置
US11093220B2 (en) Generating interfaces from data and service definitions for developing applications
CN113626321B (zh) 桥接测试方法、装置、系统及存储介质
US20230185867A1 (en) Conversion of user interface events
CN113761588A (zh) 一种数据校验方法、装置、终端设备及存储介质
Alshraiedeh et al. An approach to extend WSDL-based data types specification to enhance web services understandability

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province

Applicant after: Jiadu Technology Group Co.,Ltd.

Address before: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province

Applicant before: PCI-SUNTEKTECH Co.,Ltd.

GR01 Patent grant
GR01 Patent grant