CN114117190A - 数据处理方法、装置、存储介质及电子设备 - Google Patents
数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114117190A CN114117190A CN202111404674.4A CN202111404674A CN114117190A CN 114117190 A CN114117190 A CN 114117190A CN 202111404674 A CN202111404674 A CN 202111404674A CN 114117190 A CN114117190 A CN 114117190A
- Authority
- CN
- China
- Prior art keywords
- data processing
- service method
- query
- data
- service
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供一种数据处理方法、装置、存储介质及电子设备;涉及计算机技术领域。所述方法包括:通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;将所述数据处理结果返回至所述客户端。本公开可以根据多个客户端发送的请求字段通过统一接口调用不同的服务方法,无需定义多个接口即可返回客户端请求的指定数据,在降低开发成本的同时提升了数据的传输效率。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法、数据处理装置、计算机可读存储介质以及电子设备。
背景技术
随着科技的发展,互联网应用技术发展迅速,人们可以通过互联网应用进行各种各样的交互活动。以客户端为用户提供应用服务为例,用户可以通过服务端自定义的应用程序接口获取对应的服务数据。
为了满足不同客户端的差异化需求,服务端需要根据应用服务的服务类型定制不同的应用程序接口(下称API接口),以响应不同客户端的需求数据。其中,对于不同的应用服务,定制的API接口可能类似,此时,仍需要重复开发多个API接口,导致开发工作量较大,进而增加了开发成本。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据处理方法、数据处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术导致的服务端响应不同客户端的需求数据时开发成本较高的问题。
根据本公开的第一方面,提供一种数据处理方法,包括:
通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;
将所述数据处理结果返回至所述客户端。
在本公开的一种示例性实施例中,所述方法还包括:
配置数据模式文件,所述数据模式文件中包括服务方法、服务方法参数和与所述服务方法参数对应的返回参数;
创建方法执行器,所述方法执行器用于调用不同的服务方法对应的数据处理逻辑,以及所述方法执行器中配置有与所述数据模式文件中相同的服务方法;
将所述数据模式文件中的服务方法与方法执行器中的服务方法进行绑定,得到目标查询引擎。
在本公开的一种示例性实施例中,所述数据模式文件中配置至少一种服务方法,所述方法还包括:
根据所述数据模式文件中配置的服务方法创建所述预设聚合接口,以通过所述预设聚合接口接收多个客户端发送的数据处理请求。
在本公开的一种示例性实施例中,所述数据处理请求包括查询条件和查询变量,所述查询条件中携带所述服务方法和服务方法参数,所述查询变量中携带所述服务方法参数的字段值。
在本公开的一种示例性实施例中,通过预设聚合接口接收多个客户端发送的数据处理请求后,所述方法还包括:
提取每个数据处理请求中的查询条件和查询变量,并由所述查询条件和查询变量构建请求数据结构对象。
在本公开的一种示例性实施例中,所述解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果,包括:
从所述请求数据结构对象中提取查询条件和查询变量,并根据所述查询条件和查询变量生成用于输入所述目标查询引擎的查询参数;
通过所述目标查询引擎解析所述查询参数中的查询条件,并根据解析得到的服务方法和服务方法参数路由至对应的方法执行器;
通过所述方法执行器调用所述服务方法的数据处理逻辑,并根据所述查询变量中服务方法参数的字段值得到所述数据处理结果。
在本公开的一种示例性实施例中,所述将所述数据处理结果返回至所述客户端,包括:
将所述数据处理结果返回至所述目标查询引擎,以对所述数据处理结果进行验证;
当所述数据处理结果通过验证时,将所述数据处理结果按照预设数据格式返回至所述客户端。
当所述数据处理结果未通过验证时,将所述数据处理结果直接返回至所述客户端。
根据本公开的第二方面,提供一种数据处理装置,包括:
请求接收模块,用于通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
请求处理模块,用于解析每个数据处理请求,并根据解析得到的服务方法标识和服务方法参数调用相应的服务方法,得到数据处理结果;
请求响应模块,用于将所述数据处理结果返回至所述客户端。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例实施方式所提供的数据处理方法中,通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;将所述数据处理结果返回至所述客户端。一方面,可以根据多个客户端发送的请求字段通过统一接口调用不同的服务方法,无需针对不同的请求字段定义多个接口即可返回客户端请求的指定数据,不仅降低了开发成本,还增加了接口的灵活性;另一方面,可以根据客户端指定的请求字段返回客户端所需数据,而不会返回其它无效数据,提升了数据的传输效率,也避免了在数据传输过程中出现数据冗余。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可以应用本公开实施例的一种数据处理方法及装置的示例性系统架构的示意图;
图2示意性示出了根据本公开的一个实施例的数据处理方法的流程图;
图3示意性示出了根据本公开的一个实施例的构建目标查询引擎的流程图;
图4示意性示出了根据本公开的一个实施例的对数据处理请求进行处理的流程图;
图5示意性示出了根据本公开的一个具体实施例的数据处理方法的流程图;
图6示意性示出了根据本公开的一个实施例的通过统一接口调用不同的应用服务的流程图;
图7示意性示出了根据本公开的一个实施例的数据处理装置的框图;
图8示意性示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种数据处理方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等,用于提供用户界面进行数据处理结果的显示。例如,终端设备上安装有客户端(如浏览器),用户通过浏览器客户端查看数据处理结果。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。例如,服务器105可以是一个服务器,也可以是多个服务器组成的服务器集群,还可以是云计算平台或者虚拟化中心。具体地,服务器105可以用于执行:通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;将所述数据处理结果返回至所述客户端。
以下对本公开实施例的技术方案进行详细阐述:
本公开示例实施方式中,可以以交通区域协调控制的场景为例进行说明。示例性的,可以对某区域内的交通信号灯进行配时优化和协调控制,也就是优化该区域的交通信号控制数据。其中,交通信号控制数据可以包括子区配时数据、路口参数数据和路口相位记录,子区配时数据包括子区名称、道路名称、公共周期、协调方向、开始配时时间和结束配时时间等,路口参数数据包括路口名称、时段表号、时段匹配、方案周期、正方向协调相位、路段距离、反向速度、路口相位差等,路口相位记录包括路口相位名称和时间等。举例而言,对交通信号灯进行配时优化和协调控制时,可以配置子区配时区间、路口参数、路口相位和相位放行禁止记录,通过手动配时来达到控制信号灯切换。
交通信号控制优化数据需要具有实时性和低延迟性。在实际应用中,业务系统为了兼容多个客户端(PC端、移动端等),可以使用同一套API接口,并将同一套API接口拆分成多个API接口进行维护,以针对每个客户端需要返回的字段去调用对应的API接口。同时,对于不同的应用服务,定制的API接口可能类似。例如,对于交通信号控制中的删除子区服务和删除路口数据服务,二者的接口入参和行为均类似,此时,仍需要重复开发两个API接口,导致开发工作量较大,增加了开发成本。可以理解的是,本公开提供的数据处理方法可以应用但不局限于交通区域协调控制的场景,该方法可以应用于通过聚合接口调用应用服务的任何场景,本公开对此不做具体限定。
基于上述一个或多个问题,本示例实施方式提供了一种数据处理方法。参考图2所示,该数据处理方法可以包括步骤S210至步骤S230:
步骤S210.通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
步骤S220.解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;
步骤S230.将所述数据处理结果返回至所述客户端。
在本公开示例实施方式所提供的数据处理方法中,通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;将所述数据处理结果返回至所述客户端。一方面,可以根据多个客户端发送的请求字段通过统一接口调用不同的服务方法,无需针对不同的请求字段定义多个接口即可返回客户端请求的指定数据,不仅降低了开发成本,还增加了接口的灵活性;另一方面,可以根据客户端指定的请求字段返回客户端所需数据,而不会返回其它无效数据,提升了数据的传输效率,也避免了在数据传输过程中出现数据冗余。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S210中,通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数。
本公开示例实施方式中,实现交通区域协调控制时,服务端可以提供查询服务和维护性服务等。例如,客户端可以通过查询服务向服务端请求返回某一路口的路口参数数据,以对该路口的交通信号灯进行配时优化。客户端也可以通过维护性服务如变更服务请求服务端删除某一子区,以进行交通区域的协调管理。对应的,客户端发送的数据处理请求可以是用于获取指定数据的请求,也可以是用于删除指定数据的请求,还可以用于请求其他类型的服务,本公开对此不做具体限定。
不同客户端在调用查询服务进行数据交互时,通常按照固定大小的内容返回调用结果。示例性的,客户端需要返回路口参数数据时,服务端会将全部的路口参数字段返回,包括路口名称、时段表号、时段匹配、方案周期、正方向协调相位、路段距离、反向速度、路口相位差,而客户端并不需要返回路口相位差字段。
本公开示例实施方式中,当多个客户端请求不同的应用服务时,可以通过预设聚合接口接收多个客户端发送的数据处理请求。其中,预设聚合接口可以是GraphQL API接口,GraphQL可以将多个应用服务集成到API中,形成一个统一的API接口,也即仅需开发一个API接口就可以请求到所需数据。对应的,可以通过GraphQL语言对交通信号控制数据进行查询操作。GraphQL是一种用于数据接口的查询语言,是一个使用基于自定义数据类型来执行查询的运行式。一个GraphQL服务是通过定义数据类型以及对应的数据字段来创建的,每个类型上的每个字段均提供有对应的解析函数(即数据查询逻辑)。因此,客户端向API接口发出查询请求后,其返回的数据类型就已经确定了,而且只用接收所需要的数据,并不需要接收完整数据集。
参考图3所示,可以根据步骤310至步骤S330创建一个GraphQL服务,也就是构造GraphQL查询引擎。
步骤S310.配置数据模式文件,所述数据模式文件中包括服务方法、服务方法参数和与所述服务方法参数对应的返回参数。
具体地,可以预先配置一个数据模式文件,即schema文件。Schema文件是GraphQL中对数据的描述,schema文件中可以包含有两个类型,分别为查询类型(query)和变更类型(mutation),Query可以用于查询数据,mutation可以用于创建或更新数据。另外,GraphQL的默认标量类型可以包括:Int(有符号32位整数)、Float(有符号双精度浮点值)、String(UTF-8字符序列)、Boolean(布尔值,true或者false)和id(唯一标识符)。
在schema文件可以自定义服务方法、服务方法参数和服务方法参数对应的返回参数。若返回参数为自定义参数,还需要定义该返回参数中包含的字段及类型。示例性的,自定义的schema文件可以如下:
该schema文件中自定义的服务方法包括一种查询服务方法和两种变更服务方法。其中,查询服务方法为getSubArea,用于获取子区数据。该服务方法参数为待查询子区id,可以是该待查询子区在数据库表中记录的id,其数据类型为Int。与该服务方法参数对应的返回参数类型为SubAreaRespVO,返回参数中封装的字段和类型依次为id(子区id,类型为Int)、subregionName(子区名称,类型为String)、subregionCode(子区编码,类型为String)、cycle(公共周期,类型为Int)、direction(协调方向,类型为Int)、startTime(开始配时时间,类型为String)、endTime(结束配时时间,类型为String),对应于客户端的指定字段。两种变更服务方法为deleteSubArea和deleteCrossparam,分别用于删除子区和删除路口参数。deleteSubArea的服务方法参数为待删除子区id,数据类型为Int,与该服务方法参数对应的返回参数类型为Int,返回的字段仍为待删除子区id。deleteCrossparam的服务方法参数为待删除路口参数id,数据类型为Int,与该服务方法参数对应的返回参数类型为Int,返回的字段仍为待删除路口参数id。需要说明的是,可以根据用户的实际需求自定义schema文件,schema文件中可以定义用户所需的全部服务、全部服务入参和服务的返回对象所有的字段,本公开对此不做具体限定。
步骤S320.创建方法执行器,所述方法执行器用于调用不同的服务方法对应的数据处理逻辑,以及所述方法执行器中配置有与所述数据模式文件中相同的服务方法。
定义好schema文件后,需要实现schema文件中的query或mutation。具体地,可以创建方法执行器,即resolver类。schema文件中每个类型的每个字段均可以由一个resolver函数支持,也就是说,resolver函数是对GraphQL入口的实现,可以用于调用不同的服务方法对应的数据处理逻辑。当某个字段被执行时,可以调用相应的resolver函数,并执行数据处理逻辑以产生一个字段值。因此,可以定义schema文件中每个类型的每个字段的resolver函数,使得resolver类中配置有与schema文件中相同的服务方法。
步骤S330.将所述数据模式文件中的服务方法与方法执行器中的服务方法进行绑定,得到目标查询引擎。
本示例实施方式中,目标查询引擎可以是GraphQL查询引擎。具体地,为了对schema文件执行查询,需要先构造一个GraphQL查询引擎,并携带参数去调用execute()方法,查询后将返回一个ExecutionResult对象,其中可以包含查询的结果数据,或者出错时的错误信息集合。示例性的,可以创建一个配置绑定器provider,将schema文件中的服务方法和对应的resolver函数进行绑定,得到GraphQL查询引擎。
另外,数据模式文件中可以配置至少一种服务方法,根据数据模式文件中配置的服务方法创建预设聚合接口,以通过预设聚合接口接收多个客户端发送的数据处理请求。示例性的,若schema文件中配置有getSubArea、delSubArea和deleteCrossparam三种服务方法,可以根据这三种服务方法创建一个GraphQL API接口,也就是可以将这三种服务方法集成到API中,形成一个统一的API接口,API接口中可以实现GraphQL查询引擎编排的数据处理逻辑。GraphQL API接口可以减少应用层接口的冗余,使得接口变得具有可维护性,同时也减少了开发工作量,从而降低了开发成本。
该示例中,通过自定义schema文件,客户端可以精确的获取指定的交通信号控制数据。而且,自定义schema文件具有较好的灵活性,可以针对客户端发送的数据处理请求控制服务端暴露对应的接口服务。另外,通过将schema文件中的内容和resolver函数进行绑定,便于接收到数据处理请求时,调用对应的应用服务。
一种示例实施方式中,客户端发送的数据处理请求可以包括查询条件和查询变量,查询条件中可以携带服务方法和服务方法参数,查询变量中可以携带服务方法参数的字段值。示例性的,数据处理请求可以是一个json字符串,该json字符串中可以包含查询条件query字段和查询变量variables字段。举例而言,json字符串可以如下:
json字符串中的query字段为删除子区的schema语句。其中,deleteSubArea表示变更服务方法,即删除子区服务方法。$id:Int表示变更服务方法入参,即待删除子区的id。id:$id表示参数占位符,对应variables字段中id的字段值,variables字段对应query字段中变更服务方法入参的字段值,{"id":1}表示删除id为1的子区。服务端接收到该请求后,可以调用删除子区服务,服务执行完成后,返回指定数据{"id":1}。
该示例中,客户端可以指定调用的服务方法、服务方法参数和服务方法入参的字段值(即指定返回字段),通过schema语句可以调用不同的服务,既可以满足客户端按需获取数据,还可以降低兼容多个客户端造成的数据冗余。而且,相比于返回全部数据,返回指定数据时的数据传输包字节数变小,从而提升了数据传输效率。
在步骤S220中,解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果。
接收到多个客户端发送的数据处理请求后,可以提取每个数据处理请求中的查询条件和查询变量,并由所述查询条件和查询变量构建请求数据结构对象。其中,请求数据结果对象可以为GraphQLRequest,以便于利用GraphQLRequest将json字符串映射成GraphQL的内置字段类型。示例性的,可以提取每个json字符串中query字段和variables字段的值,并由query字段和variables字段的值构建GraphQLRequest。
参考图4所示,可以根据步骤410至步骤S430对接收到的数据处理请求进行处理。
步骤S410.从所述请求数据结构对象中提取查询条件和查询变量,并根据所述查询条件和查询变量生成用于输入所述目标查询引擎的查询参数。
具体地,可以提取GraphQLRequest中的query字段和variables字段的值,并根据提取到的query字段和variables字段的值生成用于输入GraphQL查询引擎的查询参数,该查询参数的类型可以为ExecutionInput类型。示例性的,生成的查询参数可以如下:
步骤S420.通过所述目标查询引擎解析所述查询参数中的查询条件,并根据解析得到的服务方法和服务方法参数路由至对应的方法执行器。
得到GraphQL查询引擎需要的查询参数后,可以通过GraphQL查询引擎解析查询参数中的查询条件,也就是解析query字段,得到query字段中的服务方法和服务方法参数,进而可以根据服务方法和服务方法参数匹配对应的resolver函数。
步骤S430.通过所述方法执行器调用所述服务方法的数据处理逻辑,并根据所述查询变量中服务方法参数的字段值得到所述数据处理结果。
通过resolver函数可以调用query字段中的服务方法对应的数据处理逻辑,执行完数据处理逻辑后,可以根据variables字段的值筛选需要返回的字段,得到最终的数据处理结果,即得到客户端指定的字段。最后,可以将客户端指定的字段包装成一个ExecutionResult对象,并返回给GraphQL查询引擎。
该示例实施方式中,接收到客户端发送的schema语句后,通过解析schema语句中的服务方法和服务方法参数,并通过解析得到的服务方法和服务方法参数路由至对应的服务处理程序,得到客户端指定的字段。当通过统一接口接收到多个客户端发送的schema语句时,可以根据schema语句的不同调用不同的应用服务,无需定义多个接口即可返回客户端请求的指定数据,在降低开发成本的同时提升了数据的传输效率。而且,对于一个统一接口,也便于测试人员进行维护。
示例性的,参考图5所示,接收到客户端的数据处理请求后,可以根据步骤S501至步骤S506调用对应的服务方法。
步骤S501.第一客户端发送HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求。如PC端发送HTTP请求,该HTTP请求的内容为删除子区的schema语句,具体如下:
步骤S502.第二客户端发送HTTP请求。如移动端发送HTTP请求,该HTTP请求的内容为删除路口参数的schema语句,具体如下:
步骤S503.API聚合接口接收HTTP请求。如两个客户端可请求同一个API聚合接口,以便于由同一个API聚合接口完成不同资源的删除,进而达到聚合效果;
步骤S504.Resolver解析schema语句得到HTTP请求中调用的方法。API聚合接口接收到删除不同资源的schema语句后,利用Resolver解析schema语句得到schema语句中的服务方法,以根据解析得到的删除方法路由到对应的数据处理逻辑(即资源程序),即执行步骤S505和步骤S506;
步骤S505.调用删除子区服务。解析得到schema语句中的服务方法为删除子区服务方法时,调用删除子区服务,并根据schema语句中的服务方法参数的字段值,删除对应的子区,如删除数据库表中id为1的子区。
步骤S506.调用删除路口参数服务。解析得到schema语句中的服务方法为删除路口参数服务方法时,调用删除路口参数服务,并根据schema语句中的服务方法参数的字段值,删除对应的路口参数,如删除数据库表中id为1的路口参数。
该示例中,将交通信号控制中行为类似(删除子区和删除路口参数)的API接口聚合成一个统一API接口对外暴露,能够减少应用层接口的冗余,以及减少开发工作量。而且,通过客户端指定请求的返回数据可以有效的减少数据传输时产生的冗余数据,提升了数据传输的效率。
在步骤S230中,将所述数据处理结果返回至所述客户端。
调用多个应用服务得到多个数据处理结果后,可以将数据处理结果返回至目标查询引擎,以对数据处理结果进行验证。当数据处理结果通过验证时,可以将该数据处理结果按照预设数据格式返回至客户端。当数据处理结果未通过验证时,可以将该数据处理结果直接返回至客户端。
示例性的,GraphQL查询引擎接收到ExecutionResult对象后,可以对ExecutionResult对象进行验证。例如,可以判断ExecutionResult对象中是否包含错误信息。具体地,GraphQL查询引擎在调用应用服务时,如果有错误结果,会将错误结果的设置返回给服务端,服务端通过判断GraphQL查询引擎的错误结果是否为空,不为空则说明发生了错误。ExecutionResult对象中包含错误信息时,可以将该错误信息直接返回至客户端以进行报错。ExecutionResult对象中未包含错误信息时,可以从ExecutionResult对象中获取客户端指定字段,并将客户端指定字段封装成ResponseVO对象返回至客户端。
一种示例实施方式中,参考图6所示,本公开提供的数据处理方法可以包括步骤S601至步骤S608。
步骤S601.客户端构造json字符串。服务端创建schema文件后,相应的,客户端可以构造包含query字段和variables字段的json字符串,以向服务端发起请求;
步骤S602.客户端发送请求;
步骤S603.服务端解析请求。服务端接收到json字符串后,提取json字符串中的query字段和variables字段构造成GraphqlRequest,再将GraphqlRequest中query字段和variables字段取出,构造成GraphQL查询引擎所需的输入参数;
步骤S604.查询引擎根据解析结果确定请求服务器。GraphQL查询引擎解析输入参数中的query字段,根据解析结果路由到对应的方法执行器resolver;
步骤S605.调用对应的服务方法,返回数据处理结果。resolver调用服务方法执行对应的数据处理逻辑,并根据请求中客户端指定的字段选择性的返回数据;
步骤S606.判断是否有错误信息。将数据返回至GraphQL查询引擎后,可以判断数据中是否有错误信息,若有错误信息,执行步骤S607,否则执行步骤S608;
步骤S607.返回错误信息。
步骤S608.返回指定数据。
在本公开示例实施方式所提供的数据处理方法中,通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;将所述数据处理结果返回至所述客户端。一方面,可以根据多个客户端发送的请求字段通过统一接口调用不同的服务方法,无需针对不同的请求字段定义多个接口即可返回客户端请求的指定数据,不仅降低了开发成本,还增加了接口的灵活性;另一方面,可以根据客户端指定的请求字段返回客户端所需数据,而不会返回其它无效数据,提升了数据的传输效率,也避免了在数据传输过程中出现数据冗余。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中,还提供了一种数据处理装置。参考图7所示,该数据处理装置700可以包括请求接收模块710、请求处理模块720和请求响应模块730,其中:
请求接收模块710,用于通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
请求处理模块720,用于解析每个数据处理请求,并根据解析得到的服务方法标识和服务方法参数调用相应的服务方法,得到数据处理结果;
请求响应模块730,用于将所述数据处理结果返回至所述客户端。
在一种可选的实施方式中,数据处理装置700还包括:
文件配置模块,用于配置数据模式文件,所述数据模式文件中包括服务方法、服务方法参数和与所述服务方法参数对应的返回参数;
执行器创建模块,用于创建方法执行器,所述方法执行器用于调用不同的服务方法对应的数据处理逻辑,以及所述方法执行器中配置有与所述数据模式文件中相同的服务方法;
方法绑定模块,用于将所述数据模式文件中的服务方法与方法执行器中的服务方法进行绑定,得到目标查询引擎。
在一种可选的实施方式中,所述数据模式文件中配置至少一种服务方法,数据处理装置700还包括:
接口创建模块,用于根据所述数据模式文件中配置的服务方法创建所述预设聚合接口,以通过所述预设聚合接口接收多个客户端发送的数据处理请求。
在一种可选的实施方式中,所述数据处理请求包括查询条件和查询变量,所述查询条件中携带所述服务方法和服务方法参数,所述查询变量中携带所述服务方法参数的字段值。
在一种可选的实施方式中,数据处理装置700还包括:
结构对象构建模块,用于提取每个数据处理请求中的查询条件和查询变量,并由所述查询条件和查询变量构建请求数据结构对象。
在一种可选的实施方式中,请求处理模块720包括:
查询参数生成单元,用于从所述请求数据结构对象中提取查询条件和查询变量,并根据所述查询条件和查询变量生成用于输入所述目标查询引擎的查询参数;
执行器确定单元,用于通过所述目标查询引擎解析所述查询参数中的查询条件,并根据解析得到的服务方法和服务方法参数路由至对应的方法执行器;
数据生成单元,用于通过所述方法执行器调用所述服务方法的数据处理逻辑,并根据所述查询变量中服务方法参数的字段值得到所述数据处理结果。
在一种可选的实施方式中,请求响应模块730包括:
数据验证单元,用于将所述数据处理结果返回至所述目标查询引擎,以对所述数据处理结果进行验证;
第一数据返回单元,用于当所述数据处理结果通过验证时,将所述数据处理结果按照预设数据格式返回至所述客户端。
第二数据返回单元,用于当所述数据处理结果未通过验证时,将所述数据处理结果直接返回至所述客户端。
上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
上述装置中各模块可以是通用处理器,包括:中央处理器、网络处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。各模块也可以由软件、固件等形式来实现。上述装置中的各处理器可以是独立的处理器,也可以集成在一起。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图8来描述根据本公开的这种示例性实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图8所示,电子设备800可以以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830和显示单元840。
存储单元820存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元810可以执行图2至图6中任意一个或多个方法步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(ROM)823。
存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果;
将所述数据处理结果返回至所述客户端。
2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
配置数据模式文件,所述数据模式文件中包括服务方法、服务方法参数和与所述服务方法参数对应的返回参数;
创建方法执行器,所述方法执行器用于调用不同的服务方法对应的数据处理逻辑,以及所述方法执行器中配置有与所述数据模式文件中相同的服务方法;
将所述数据模式文件中的服务方法与方法执行器中的服务方法进行绑定,得到目标查询引擎。
3.根据权利要求2所述的数据处理方法,其特征在于,所述数据模式文件中配置至少一种服务方法,所述方法还包括:
根据所述数据模式文件中配置的服务方法创建所述预设聚合接口,以通过所述预设聚合接口接收多个客户端发送的数据处理请求。
4.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理请求包括查询条件和查询变量,所述查询条件中携带所述服务方法和服务方法参数,所述查询变量中携带所述服务方法参数的字段值。
5.根据权利要求4所述的数据处理方法,其特征在于,接收多个客户端发送的数据处理请求后,所述方法还包括:
提取每个数据处理请求中的查询条件和查询变量,并由所述查询条件和查询变量构建请求数据结构对象。
6.根据权利要求5所述的数据处理方法,其特征在于,所述通过预设聚合接口解析每个数据处理请求,并根据解析得到的服务方法和服务方法参数调用相应的服务方法,得到数据处理结果,包括:
从所述请求数据结构对象中提取查询条件和查询变量,并根据所述查询条件和查询变量生成用于输入所述目标查询引擎的查询参数;
通过所述目标查询引擎解析所述查询参数中的查询条件,并根据解析得到的服务方法和服务方法参数路由至对应的方法执行器;
通过所述方法执行器调用所述服务方法的数据处理逻辑,并根据所述查询变量中服务方法参数的字段值得到所述数据处理结果。
7.根据权利要求6所述的数据处理方法,其特征在于,所述将所述数据处理结果返回至所述客户端,包括:
将所述数据处理结果返回至所述目标查询引擎,以对所述数据处理结果进行验证;
当所述数据处理结果通过验证时,将所述数据处理结果按照预设数据格式返回至所述客户端;
当所述数据处理结果未通过验证时,将所述数据处理结果直接返回至所述客户端。
8.一种数据处理装置,其特征在于,包括:
请求接收模块,用于通过预设聚合接口接收多个客户端发送的数据处理请求,所述数据处理请求中携带服务方法和服务方法参数;
请求处理模块,用于解析每个数据处理请求,并根据解析得到的服务方法标识和服务方法参数调用相应的服务方法,得到数据处理结果;
请求响应模块,用于将所述数据处理结果返回至所述客户端。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111404674.4A CN114117190A (zh) | 2021-11-24 | 2021-11-24 | 数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111404674.4A CN114117190A (zh) | 2021-11-24 | 2021-11-24 | 数据处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114117190A true CN114117190A (zh) | 2022-03-01 |
Family
ID=80371960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111404674.4A Pending CN114117190A (zh) | 2021-11-24 | 2021-11-24 | 数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117190A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785774A (zh) * | 2022-06-17 | 2022-07-22 | 昆仑智汇数据科技(北京)有限公司 | 一种数据传输方法、装置及设备 |
CN116109112A (zh) * | 2023-04-12 | 2023-05-12 | 徐工汉云技术股份有限公司 | 基于聚合接口的业务数据处理方法、装置、介质和设备 |
CN117289916A (zh) * | 2023-11-24 | 2023-12-26 | 美云智数科技有限公司 | 数智化PaaS平台系统 |
-
2021
- 2021-11-24 CN CN202111404674.4A patent/CN114117190A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785774A (zh) * | 2022-06-17 | 2022-07-22 | 昆仑智汇数据科技(北京)有限公司 | 一种数据传输方法、装置及设备 |
CN114785774B (zh) * | 2022-06-17 | 2022-09-06 | 昆仑智汇数据科技(北京)有限公司 | 一种数据传输方法、装置及设备 |
CN116109112A (zh) * | 2023-04-12 | 2023-05-12 | 徐工汉云技术股份有限公司 | 基于聚合接口的业务数据处理方法、装置、介质和设备 |
CN117289916A (zh) * | 2023-11-24 | 2023-12-26 | 美云智数科技有限公司 | 数智化PaaS平台系统 |
CN117289916B (zh) * | 2023-11-24 | 2024-06-07 | 美云智数科技有限公司 | 数智化PaaS平台系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10839011B2 (en) | Application programing interface document generator | |
US10942708B2 (en) | Generating web API specification from online documentation | |
KR102220127B1 (ko) | 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치 | |
CN110324169B (zh) | 一种接口管理的方法和装置 | |
CN114117190A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
WO2023093414A1 (zh) | 微应用的开发方法、装置、设备、存储介质及程序产品 | |
JP7200277B2 (ja) | ワードスロットを識別するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム | |
US11847509B2 (en) | Infrastructure base model API | |
JP2021111403A (ja) | ランディングページの処理方法、装置、機器及び媒体 | |
CN112015468A (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
CN113419740A (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
WO2021129812A1 (zh) | 运行人工智能应用的方法、系统及设备 | |
KR20090000199A (ko) | 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
US20240176732A1 (en) | Advanced application of model operations in energy | |
US11636111B1 (en) | Extraction of relationship graphs from relational databases | |
CN112948264B (zh) | 测试任务的执行方法及装置、系统、存储介质、电子装置 | |
JP2024508412A (ja) | グラフィックユーザインタフェースからの自然言語インタフェースの生成 | |
CN115145652A (zh) | 一种数据处理任务的创建方法、装置、设备及介质 | |
CN115098530A (zh) | 数据获取方法和装置 | |
JP2021120899A (ja) | ユーザ識別方法、装置、記憶媒体及び電子機器 | |
CN113064987A (zh) | 数据处理方法、装置、电子设备、介质和程序产品 | |
CN118535140B (zh) | Api框架下多版本控制方法、系统、设备及存储介质 | |
CN115357240B (zh) | 微服务模型构建方法、装置、计算机设备和存储介质 |
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 |