一种调用接口数据的方法、装置及电子设备与流程

文档序号:15143670发布日期:2018-08-10 20:11阅读:187来源:国知局

本发明涉及计算机领域,特别涉及一种调用接口数据的方法、装置及电子设备。



背景技术:

在软件开发过程中,有时需要使用多种编程语言进行编程,在使用多种编程语言进行编程的过程中,会出现不同的编程语言代码需要同时访问同一接口数据的需求。

例如,在开发vr(virtualreality,虚拟现实)产品时,通常需要在安卓平台和ios(internetworkingoperatingsystem,网络操作系统)平台上分别使用java(一种编程语言)和objective-c(一种编程语言,简称oc)开发二维场景,在unity(一种开发平台的名称)平台上使用c#开发三维场景。由于vr产品的程序框架通常是用c#编写的,并且c#代码以插件的形式访问c++代码编写的接口数据,预先设置在c#层的安全锁只有c#编写的代码能够识别,使用java编写的代码或使用oc编写的代码不能识别c#层的安全锁。为了保证接口数据安全以及程序能够正常运行,目前在开发vr产品时,通常只有用c#编写的代码可以访问接口数据。

然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:使用现有技术设置的安全锁,不能支持多种编程语言代码同时访问同一接口数据的需求,降低了开发产品的效率。



技术实现要素:

本发明实施例的目的在于提供一种调用接口数据的方法、装置及电子设备,以实现多种编程语言代码同时访问同一接口数据的需求,提高开发产品的效率。具体技术方案如下:

第一方面,提供了一种调用接口数据的方法,所述方法包括:

在运行针对同一接口数据的多种编程语言代码时,根据所述多种编程语言代码中包含的目标数据的标识,确定所述目标数据的标识对应的目标数据;

确定所述目标数据对应的缓存位置,并将所述目标数据存储到所述缓存位置;

根据预设的转换算法,将所述缓存位置存储的所述目标数据转换成所述多种编程语言代码对应的数据。

可选的,所述根据所述多种编程语言代码中包含的目标数据的标识,确定所述目标数据的标识对应的目标数据,包括:

确定所述目标数据的标识对应的安全锁的类别标识;

锁定所述类别标识对应的安全锁,获取所述安全锁对应的目标数据。

可选的,所述获取所述安全锁对应的目标数据之后,所述方法还包括:

解除所述安全锁。

可选的,所述确定所述目标数据对应的缓存位置,包括:

根据所述目标数据占用的存储空间和类别特征,确定所述目标数据对应的缓存位置。

可选的,所述缓存位置有多个,所述确定所述目标数据对应的缓存位置,包括:

按照预设的轮询方式,确定所述目标数据对应的缓存位置。

第二方面,提供了一种调用接口数据的装置,所述装置包括:

第一确定模块,用于在运行针对同一接口数据的多种编程语言代码时,根据所述多种编程语言代码中包含的目标数据的标识,确定所述目标数据的标识对应的目标数据;

第二确定模块,用于确定所述目标数据对应的缓存位置,并将所述目标数据存储到所述缓存位置;

转换模块,用于根据预设的转换算法,将所述缓存位置存储的所述目标数据转换成所述多种编程语言代码对应的数据。

可选的,所述第一确定模块,包括:

确定子模块,用于确定所述目标数据的标识对应的安全锁的类别标识;

获取子模块,用于锁定所述类别标识对应的安全锁,获取所述安全锁对应的目标数据。

可选的,所述装置还包括:

解除模块,用于解除所述安全锁。

可选的,所述第二确定模块,具体用于:

根据所述目标数据占用的存储空间和类别特征,确定所述目标数据对应的缓存位置。

可选的,所述缓存位置有多个,所述第二确定模块,具体用于:

按照预设的轮询方式,确定所述目标数据对应的缓存位置。

第三方面,提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面所述的任一调用接口数据的方法步骤。

第四方面,为了达到上述目的,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面所述的任一调用接口数据的方法步骤。

本发明实施例提供了一种调用接口数据的方法、装置及电子设备,在运行针对同一接口数据的多种编程语言代码时,根据多种编程语言代码中包含的目标数据的标识,确定目标数据的标识对应的目标数据,再确定目标数据对应的缓存位置,并将目标数据存储到缓存位置,最后根据预设的转换算法,将缓存位置存储的目标数据转换成多种编程语言代码对应的数据。

利用本申请的技术方案,在多种编程语言代码同时访问同一目标数据(当前被访问的接口数据可以称为目标数据)时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。当然,实施本发明的任一产品或方法不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种调用接口数据的方法流程图;

图2为本发明实施例提供的一种多种编程语言代码同时访问接口数据的流程示意图;

图3为本发明实施例提供的一种调用接口数据的装置结构示意图;

图4为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例公开了一种调用接口数据的方法、装置及电子设备,本发明实施例的执行主体可以是终端,以下分别进行详细说明。

如图1所示,其示出了本发明实施例的一种调用接口数据的方法流程图,包括如下步骤:

步骤101,在运行针对同一接口数据的多种编程语言代码时,根据多种编程语言代码中包含的目标数据的标识,确定目标数据的标识对应的目标数据。

在本发明实施例中,技术人员在开发产品的过程中,可以在终端中存储多个接口数据,例如,使用c++编写的多个接口数据。其中,各接口数据的存储位置和名称是唯一的,终端可以将接口数据的存储位置或名称作为接口数据的标识,以此区分各接口数据。

技术人员在使用多种编程语言编写不同的编程语言代码时,这些编程语言代码可以以多线程的方式同时访问同一接口数据。终端可以根据各编程语言代码中包含的目标数据(为了方便描述,将当前被访问的接口数据称为目标数据)的标识,确定目标数据的标识对应的目标数据。

步骤102,确定目标数据对应的缓存位置,并将目标数据存储到缓存位置。

在本发明实施例中,终端可以根据目标数据的类别或大小,将不同的目标数据存储到相应的缓存位置。例如,有两个接口数据,一个接口数据包含2gb(gigabits,十亿字节)的歌曲专辑,该接口数据的类别是歌曲专辑,大小是2gb;另一个接口数据包含3gb的电视剧剧集,该接口数据的类别是电视剧剧集,大小是3gb。如果终端按照目标数据的类别确定目标数据的缓存位置,技术人员可以预先设定x1~x10的缓存位置用于存储歌曲专辑,x11~x20的缓存位置用于存储电视剧剧集,假如当前有3个线程同时访问的目标数据是2gb的歌曲专辑,终端在获取目标数据后,可以先确定目标数据的类别,然后根据预设的目标数据与存储位置的对应关系,从x1~x10随机选取3个存储位置用于存储该目标数据。如果终端按照目标数据的大小确定目标数据的缓存位置,技术人员可以预先设定x21~x30的缓存位置用于存储10gb以下的接口数据,x31~x40的缓存位置用于存储10gb以上的接口数据,假如当前有3个线程同时访问的目标数据是2gb的歌曲专辑,终端在获取目标数据后,可以先确定目标数据的大小,然后根据预设的目标数据与存储位置的对应关系,从x21~x30随机选取3个存储位置用于存储该目标数据。终端还可以按照目标数据的类别和大小确定目标数据的缓存位置,该方法在后面将作详细描述。各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要获取原始的目标数据。从而避免了某个编程语言代码在调用、修改原始的目标数据的过程中,其它的编程语言代码调用到的原始的目标数据可能已经被某个编程语言代码修改,导致各编程编程语言代码不能正常运行的情况。

步骤103,根据预设的转换算法,将缓存位置存储的目标数据转换成多种编程语言代码对应的数据。

在本发明实施例中,终端在运行各编程语言代码时,当需要访问目标数据时,可以从缓存位置获取目标数据,并根据预设的转换算法,将缓存位置的目标数据转换成各编程语言代码能够识别的数据。例如,java代码可以通过预设的jni(javanativeinterface,java本地接口)将目标数据转换成java字符串,oc代码可以通过功能代码stringwithutf8stringnull将目标数据转换成nsstring(nextstepstring,一种特定格式的字符串),c#代码可以通过插件的形式将目标数据转换成c#字符串。

本发明实施例提供的调用接口数据的方法,在多种编程语言代码同时访问同一目标数据时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。

可选的,终端可以先确定目标数据的标识对应的安全锁的类别标识,然后锁定该类别标识对应的安全锁,再获取该安全锁对应的目标数据。

在本发明实施例中,安全锁设置在数据层(即接口数据层),而不在语言层(即各编程语言代码层),技术人员可以预先根据目标数据的类别和大小设置线程粒度适中的安全锁,各目标数据的标识与各安全锁的类别标识具有对应关系。从而,在获取目标数据时,终端可以根据目标数据的标识确定对应的安全锁的类别标识,然后锁定该安全锁,并将安全锁中的目标数据复制到缓存位置。

本发明实施例提供的方案中,安全锁的有效范围可以预先设置,并且安全锁设置在数据层,这样可以优化接口数据的管理,提高编程语言代码的运行效率。

可选的,终端在获取目标数据之后,还可以解除安全锁。

在本发明实施例中,终端在获取目标数据之后,为了保证目标数据的安全性,可以解除安全锁。

可选的,终端可以根据目标数据占用的存储空间和类别特征,确定目标数据对应的缓存位置。

在本发明实施例中,技术人员可以根据目标数据占用的存储空间(即大小)和类别特征,预先设置目标数据与缓存位置的对应关系。例如,目标数据是2gb的歌曲专辑,技术人员可以预先设定x41~x50的缓存位置用于存储歌曲专辑,其中,小于10gb的歌曲专辑存储在x41~x45中,大于10gb的歌曲专辑存储在x46~x50中,终端在获取目标数据后,可以先确定目标数据的大小和类别特征,在确定目标数据的大小是2gb、类别是歌曲专辑后,再根据同时访问该目标数据的线程总数,从x41~x45中选取与该总数相同的缓存位置,并将目标数据分别复制到被选中的缓存位置。目标数据和缓存位置的对应关系还可以根据缓存位置的大小进一步细分,例如,x41~x50的存储空间逐渐增大,技术人员可以预先设置0~1gb的目标数据存储在x41,1gb~2gb的目标数据存储在x42,2gb~3gb的目标数据存储在x43,以此方式进行设置。本发明实施例提供的方案中,终端可以根据目标数据占用的存储空间和类别特征提供相应的缓存位置,这样可以合理应用缓存空间,优化对目标数据的存储管理。

可选的,当目标数据的缓存位置有多个时,终端可以按照预设的轮询方式,确定目标数据对应的缓存位置。

在本发明实施例中,同一个目标数据可以对应多个缓存位置,如图2所示,目标数据对应6个缓存位置,分别是a、b、c、d、e、f。终端在第一次接收到3种编程语言代码对应的调用指令时,可以将目标数据复制到a、b、c中,供3种编程语言代码分别调用。终端在第二次接收到3种编程语言代码对应的调用指令时,可以将目标数据复制到d、e、f中。当终端第三次接收到3种编程语言代码对应的调用指令时,则将目标数据复制到a、b、c中。终端按照这种轮询的方式将目标数据存储到对应的缓存位置。

本发明实施例提供的方案中,同一个目标数据可以对应多个缓存位置,这样避免某个线程复制目标数据时,另一个线程已经将目标数据清除的情况,从而保证各线程能够正常调用目标数据。

基于相同的技术构思,相应于图1所示的方法实施例,本发明实施例还提供了一种调用接口数据的装置,如图3所示,该装置包括:

第一确定模块301,用于在运行针对同一接口数据的多种编程语言代码时,根据所述多种编程语言代码中包含的目标数据的标识,确定所述目标数据的标识对应的目标数据;

确定模块302,用于确定所述目标数据对应的缓存位置,并将所述目标数据存储到所述缓存位置;

转换模块303,用于根据预设的转换算法,将所述缓存位置存储的所述目标数据转换成所述多种编程语言代码对应的数据。

本发明实施例提供的调用接口数据的装置,在多种编程语言代码同时访问同一目标数据时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。可选的,所述第一确定模块,包括:

确定子模块,用于确定所述目标数据的标识对应的安全锁的类别标识;

获取子模块,用于锁定所述类别标识对应的安全锁,获取所述安全锁对应的目标数据。

本发明实施例提供的方案中,安全锁的有效范围可以预先设置,并且安全锁设置在数据层,这样可以优化接口数据的管理,提高编程语言代码的运行效率。

可选的,所述所述装置还包括:

解除模块,用于解除所述安全锁。

可选的,所述第二确定模块,具体用于:

根据所述目标数据占用的存储空间和类别特征,确定所述目标数据对应的缓存位置。

本发明实施例提供的方案中,终端可以根据目标数据占用的存储空间和类别特征提供相应的缓存位置,这样可以合理应用缓存空间,优化对目标数据的存储管理。

可选的,所述缓存位置有多个,所述第二确定模块,具体用于:

按照预设的轮询方式,确定所述目标数据对应的缓存位置。

本发明实施例提供的方案中,同一个目标数据可以对应多个缓存位置,这样避免某个线程复制目标数据时,另一个线程已经将目标数据清除的情况,从而保证各线程能够正常调用目标数据。

本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401、通信接口402、存储器403通过通信总线404完成相互间的通信;

存储器403,用于存放计算机程序;

处理器401,用于执行存储器403上所存放的程序时,实现本发明实施例提供的调用接口数据的方法。

具体的,上述调用接口数据的方法,包括:

在运行针对同一接口数据的多种编程语言代码时,根据所述多种编程语言代码中包含的目标数据的标识,确定所述目标数据的标识对应的目标数据;

确定所述目标数据对应的缓存位置,并将所述目标数据存储到所述缓存位置;

根据预设的转换算法,将所述缓存位置存储的所述目标数据转换成所述多种编程语言代码对应的数据。

本发明实施例提供的调用接口数据的电子设备,在多种编程语言代码同时访问同一目标数据时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。

需要说明的是,上述调用接口数据的方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

上述电子设备的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的调用接口数据的方法。

本发明实施例提供的调用接口数据的计算机可读存储介质,在多种编程语言代码同时访问同一目标数据时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的调用接口数据的方法。

本发明实施例提供的调用接口数据的计算机程序产品,在多种编程语言代码同时访问同一目标数据时,各编程语言代码可以从相应的缓存位置分别获取目标数据,而不需要同时获取原始的目标数据,这样可以在保证目标数据安全的情况下,实现多种编程语言代码同时访问同一目标数据的需求,提高了开发产品的效率。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本发明实施例提供了一种调用接口数据的方法、装置及电子设备,通过接收针对同一接口数据的多种编程语言代码对应的调用指令,其中,调用指令中包含目标数据的标识,然后根据目标数据的标识,获取调用指令对应的目标数据,再确定目标数据对应的缓存位置,并将目标数据存储到缓存位置,最后根据预设的转换算法,将缓存位置存储的目标数据转换成多种编程语言代码对应的数据。采用本发明提供的方法,可以实现多种编程语言代码同时访问同一接口数据的需求,提高了开发产品的效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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