CN111752964A - 基于数据接口的数据处理方法及装置 - Google Patents

基于数据接口的数据处理方法及装置 Download PDF

Info

Publication number
CN111752964A
CN111752964A CN201910497992.6A CN201910497992A CN111752964A CN 111752964 A CN111752964 A CN 111752964A CN 201910497992 A CN201910497992 A CN 201910497992A CN 111752964 A CN111752964 A CN 111752964A
Authority
CN
China
Prior art keywords
data
interface
database
data interface
data processing
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
Application number
CN201910497992.6A
Other languages
English (en)
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910497992.6A priority Critical patent/CN111752964A/zh
Publication of CN111752964A publication Critical patent/CN111752964A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例提供了一种基于数据接口的数据处理方法、基于数据接口的数据处理装置、计算机可读介质及电子设备,涉及数据处理技术领域。该方法包括:根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;通过所述数据查询语句对所述数据库进行数据处理。本公开实施例的技术方案能够将业务逻辑与数据处理分开,降低代码的开发及维护难度,提高维护效率。

Description

基于数据接口的数据处理方法及装置
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种基于数据接口的数据处理方法、基于数据接口的数据处理装置、计算机可读介质及电子设备。
背景技术
网络应用每天都会产生成千上万的数据存储在数据库中,为了方便用户查询数据,应用需要提供数据接口对数据库进行操作。
目前,大部分的数据接口是将数据库操作与业务逻辑结合起来进行数据处理。数据的增删改查都依赖于业务逻辑,因此数据操作的代码与业务逻辑的代码也互相依赖,造成了大量重复的代码。并且,如果数据操作变更,代码中需要变更多处,不利用代码维护。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种基于数据接口的数据处理方法、基于数据接口的数据处理装置、计算机可读介质及电子设备,进而至少在一定程度上克服数据操作维护困难的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种基于数据接口的数据处理方法,包括:根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;通过所述数据查询语句对所述数据库进行数据处理。
在本公开的一种示例性实施例中,通过所述数据查询语句对所述数据库进行数据处理,包括:通过所述数据查询语句获取所述数据库中的目标数据;基于所述目标数据,向所述数据接口的使用者返回数据处理结果。
在本公开的一种示例性实施例中,所述基于所述目标数据,向所述数据接口的使用者返回数据处理结果,包括:如果所述目标数据中包含符合预设条件的字段,则根据所述数据库的安全配置表对所述字段进行替换,以获取数据处理结果返回给所述数据接口的使用者。
在本公开的一种示例性实施例中,所述如果所述目标数据中包含符合预设条件的字段,包括:如果所述目标数据中包含所述数据库的主键的输出值,则所述主键的输出值为符合预设条件的字段。
在本公开的一种示例性实施例中,根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数之前,还包括:根据安全配置表确定所述数据接口对应的数据库以及所述数据库中的目标表;如果所述目标表中的数据被查询,则根据所述目标表的表名确定所述目标表的主键的输出值,以便确定所述目标数据中的主键。
在本公开的一种示例性实施例中,根据数据接口所操作的数据库的接口配置表确定所述数据接口的输入参数,包括:根据所述接口配置表确定所述数据接口的鉴权服务地址;通过所述鉴权服务地址对传入所述数据接口的请求数据进行鉴权;如果所述请求数据鉴权成功,则根据所述请求数据确定所述输入参数。
在本公开的一种示例性实施例中,通过所述数据查询语句对所述数据库进行数据处理之前,还包括:根据所述数据库的数据库配置表确定所述数据库的登录信息;利用所述登录信息连接所述数据库,以对所述数据库进行数据处理。
根据本公开实施例的第二方面,提供了一种基于数据接口的数据处理装置,包括:参数确定单元,用于根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;语句确定单元,用于通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;数据获取单元,用于通过所述数据查询语句对所述数据库进行数据处理。
根据本公开实施例的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的基于数据接口的数据处理方法。
根据本公开实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的基于数据接口的数据处理方法。
本公开实施例提供的技术方案可以包括以下有益效果:
在本公开的一些实施例所提供的技术方案中,一方面,通过数据库的接口配置表确定数据接口的输入参数,进而确定数据查询语句,可以将数据库操作的代码与业务逻辑的代码分开,降低了维护难度。另一方面,数据查询语句可以通过接口配置表获得,无需针对数据库处理操作再开发对应的代码,避免造成代码的重复开发,提高数据处理的效率。再一方面,减少了开发成本,有利于产品的快速迭代。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的实施例中用于实现基于数据接口的数据处理方法的系统架构示意图;
图2示意性示出了根据本公开的实施例中的基于数据接口的数据处理方法的第一个流程图;
图3示意性示出了根据本公开的实施例的基于数据接口的数据处理方法的第二个流程图;
图4示意性示出了根据本公开的实施例的基于数据接口的数据处理方法的第三个流程图;
图5示意性示出了根据本公开的实施例的基于数据接口的数据处理方法的第四个流程图;
图6示意性示出了根据本公开的实施例的基于数据接口的数据处理方法的第五个流程图;
图7示意性示出了根据本公开的实施例的基于数据接口的数据处理方法的第六个流程图;
图8示意性示出了根据本公开的实施例的基于数据接口的数据处理装置的框图;
图9示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
CURD是数据库技术中的用于处理数据的基本原子操作,一般的项目开发的基本功能都是CURD。互联网项目中最常见的需求是对数据库进行curd操作,例如增删改查。出于数据库安全性的考虑,相关数据库的操作均是通过数据库接口来完成。项目会统一规划,将所有的数据库操作和公共业务逻辑规划到一起,形成数据操作服务对外提供,例如订单中心、用户中心等。这种方式需要开发大量代码,基础的增删改查服务中糅合了部分业务逻辑,造成代码维护困难。
基于此,本公开的示例性实施例中首先提供一种用于实现基于数据接口的数据处理方法的系统架构。参考图1所示,该系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送请求指令等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本公开实施方式所提供的基于数据接口的数据处理方法一般由服务器105执行,相应地,基于数据接口的数据处理装置一般设置于终端设备101中。
基于上述系统架构100,本公开示例性实施例中提出一种基于数据接口的数据处理方法,如图2所示,该方法可以包括以下步骤:
步骤S202,根据数据接口对应的数据库的接口配置表确定数据接口的输入参数;
步骤S204,通过接口配置表获取执行代码,结合输入参数和执行代码确定数据查询语句;
步骤S206,通过数据查询语句对数据库进行数据处理。
其中,数据接口可以指应用程序编程接口(Application ProgrammingInterface,简称API),在被其他应用程序调用时能够实现相应的功能。因此数据接口可以包括一组预先定义的函数,或者能够实现特定功能的应用程序。为了使产品的开发变得容易,互联网产品都会对外提供统一的API接口。数据接口可以通过能够唯一标识一数据接口的标识信息来访问,例如接口名称getUserList等。在互联网应用程序中,前端设备的类型越来越多,例如手机、平板、电脑等,因此能够适配不同类型的前端设备的RESTful API越来越流行。RESTful API是符合REST规则以及RESTful架构思想的数据接口。这类数据接口与用户的通信协议可以使用HTTPs协议,也就是说,数据接口可以通过URL来访问,例如数据接口可以为https://api.example.com。
通过访问数据接口能够对数据库进行curd操作,例如通过数据写入接口,向数据库中添加数据,通过数据删除接口,删除数据库中的数据等。每一数据接口可以操作一对应的数据库,即,通过该数据接口可以请求到该数据库中的数据。数据库与数据接口的映射关系可以通过表来记录。针对每一数据库还可以构建一接口配置表,来记录和配置能够操作该数据库中数据的数据接口。该接口配置表中可以包括数据接口的接口名称、数据接口的描述信息、以及该数据接口的输入参数;还可以包括数据接口对应的数据库的标识信息。因此,根据该接口配置表能够确定该数据接口对应的数据库,进而从该数据库对应的接口配置表中可以查询到该数据接口的输入参数的数量,以及各输入参数的说明信息。
数据接口的输入参数是指数据接口接收外界传入数据的参数,在调用数据接口时,使用不同的输入参数可以得到不同的数据结果。例如,获取用户信息的数据接口,其输入参数可以是用户标识,那么通过不同的用户标识可以得到不同用户的用户信息。输入参数的数量可以为多个,不同的数据接口其输入参数的数量也可以不同。输入参数的数量为1、2、3个,也可以为其他数量,例如4、5、6等,本示例实施例对此不做特殊限定。
此外,数据接口还可以包括输出参数,输出参数可以表示该数据接口被调用的结果,例如成功、失败等。数据接口被调用时,可以将输出参数的值返回给调用者。举例而言,如果用户数量接口提供的功能是统计当前的用户数量,则该数据接口的输出参数为用户数量。输入参数可以对数据接口的输出结果进行过滤,例如,对于获取用户信息接口,其输入参数可以表示用户id,如果调用该接口时传入的参数为“123”,只会输出用户id与123匹配的用户信息。
在示例性的实施例中,根据接口配置表可以确定数据接口的输入参数的值。如果有数据传入数据接口,则根据接口配置表可以查询该数据接口的输入参数的数量以及含义,从而根据传入该数据接口的数据确定输入参数的值。如果没有数据传入该数据接口,则该数据接口的输入参数的值可以是预先设定的默认值,或者为空。例如获取用户信息接口getUserInf的输入参数表示用户的标识号,如果通过getUserInf/123调用该接口时,则123为传入的数据,即,该接口输入参数的值,那么只返回用户标识号为123的用户信息;若通过getUserInf调用该接口,则可以默认将所有用户的信息返回。
为了获取该数据接口的调用结果,在确定数据接口的输入参数的值后,还需要确定该数据接口对应的执行代码。执行代码可以实现数据接口的功能,即,对数据库执行数据处理操作。数据库的数据处理操作可以通过结构化查询语句(Structured QueryLanguage,简称SQL)来完成,因此执行代码可以包括SQL语句。例如,添加数据接口的执行代码可以是:“insert into test_tb1(id,arg1,arg2,arg3)Values(NULL,'{arg1}','{arg2}','{arg3}');”,其中输入参数有三个,arg1,arg2,arg3。
从接口配置表中获取到执行代码后,可以根据执行代码以及输入参数确定数据查询语句。将执行代码中的输入参数字段替换为步骤S202中确定的输入参数,从而得到数据查询语句。该数据查询语句可以被执行从而完成数据处理操作。例如,获取的执行代码为“insert into test_tb1(id,arg1,arg2,arg3)Values(NULL,'{arg1}','{arg2}','{arg3}');”,确定的输入参数为“11,22,33”,则将执行代码中的输入参数替换后得到“insert into test_tb1(id,arg1,arg2,arg3)Values(NULL,’11’,’22’,’33’);”为数据查询语句。得到数据查询语句后,可以执行该数据查询语句从而对数据库进行数据处理。例如,向数据库中添加数据、从数据库中查询数据、删除数据库中的数据等。
基于以上说明,在本示例性实施例提供的技术方案中,通过数据接口对应的数据库的接口配置表确定数据接口的输入参数,并且通过该接口配置表以及该输入参数可以确定该数据接口的数据查询语句,从而利用数据查询语句对数据库进行数据处理操作。一方面,可以将数据库操作的代码与业务逻辑的代码分开,降低代码的维护难度。另一方面,通过接口配置表可以确定数据查询语句,无需针对数据库处理操作再开发对应的代码,能够避免造成代码的重复开发,从而提高了数据处理效率。再一方面,减少了开发成本,有利于产品的快速迭代。
在示例性实施例中,对数据库进行数据处理可以包括获取数据库中的目标数据。如图3所示,上述步骤S202可以具体包括以下步骤:
步骤S301,通过数据查询语句获取数据库中的目标数据;
步骤S303,基于目标数据,向数据接口的使用者返回数据处理结果。
如果数据接口是获取数据的接口,则通过该接口的输入参数以及执行代码可以获取数据库中的目标数据。目标数据可以包括数据库的表中的行数据或者列数据。例如,通过用户id可以获取用户信息表中的一行数据。数据接口的使用者可以包括调用数据接口的应用程序、线程,也可以包括使用数据接口的用户。从数据库中获取到目标数据后,可以将目标数据返回给数据接口的使用者,也就是说,数据处理结果可以包括目标数据。此外,数据处理结果还可以包括对目标数据进行处理后的数据,例如对目标数据进行脱敏处理后的数据、对目标数据进行格式化后的数据等。
因此,基于目标数据向数据接口的使用这返回数据处理结果可以具体通过以下方式:如果所述目标数据中包含符合预设条件的字段,则根据所述数据库的安全配置表对所述字段进行替换,以获取数据处理结果返回给所述数据接口的使用者。
针对每一数据库可以预先生成一安全配置表,该表可以将数据处理结果中的敏感数据,或者容易造成数据泄露等安全问题的数据进行安全处理,以使得数据接口的使用者最终获取的数据不会对数据库造成安全问题。在检测到目标数据中包含符合预设条件的字段,可以根据该安全配置表对该字段进行替换。符合预设条件的字段可以包括容易造成安全问题的字段,例如账户名、密码字段等。示例性地,由于表的主键可以唯一标识表中的数据,表与表之间的关联关系通常基于主键建立,因此如果恶意用户获取了主键的值,很容易造成数据泄露。因此,如果目标数据中包含数据库的主键的输出值,则将主键的输出值为符合预设条件的字段。
安全配置表中可以包括该表所属的数据库的标识信息、以及该安全配置表自身的标识信息,例如表名、表的id等;还可以包括安全字段的信息。如果目标数据中包含符合预设条件的字段,则可以将该符合预设条件的字段替换为安全字段。例如,将数据库中表的主键id替换为uuid。对目标数据中的所有符合预设条件的字段都进行替换后,能够得到数据处理结果,从而将数据处理结果返回给数据接口的使用者。示例性地,安全配置表可以根据表1中所示的数据结构进行设计。
表1
字段名称 字段类型 说明
id int(11)unsigned ID自增
Db_set_id Int(11) 所属的数据库的id
Table_name Int(11) 所属数据库中的表
Table_id Int(11) 在所属数据库中的id
Resource_id Varchar(255) 对外输出的安全标识uuid
不同的数据库、不同的表的符合预设条件的字段可以不同,检测符合预设条件的字段则需要确定数据库以及数据库中的表。在步骤S202之前,本示例性实施例还可以包括以下步骤:
步骤S401,根据安全配置表确定数据接口对应的数据库以及数据库中目标表;
步骤S403,如果目标表中的数据被查询,则根据目标表的表名确定目标表的主键的输出值,以便确定目标数据中的主键。
通过安全配置表可以确定数据库中的目标表,如表1中所示,Table_name字段的值可以表示数据库中的目标表的表名。根据目标表的表名可以获取目标表的主键,如果该目标表中的数据被查询,查询到的数据中包含该目标表的主键,则根据目标表的表名确定该主键的输出值。示例性的,根据表1,通过目标表的表名可以从表1中查询对应的resource_id的值,将resource_id的值作为主键的输出值。如果在表1中没有查询到目标表的表名对应的resource_id,则可以生成一个值,然后把生成的该值与当前操作的数据库、目标表、以及数据接口的id生成一条新的记录,记录在表1中,然后将该生成的值作为主键的输出值输出到目标数据中。此外,可以将主键与表名进行组合得到主键的输出值,例如,假设目标表的表名为tbl_resource,主键为ID,如果需要输出目标表中的ID=123的数据作为目标数据时,则将tbl_resource123作为输出值。
利用目标表的表名对主键进行输出处理后,便于检测目标数据中是否包含主键的输出值。如果目标数据中存在包含表名的字段,那么可以该字段确定为主键的输出值,进而可以在输出的数据中隐藏数据库中主键的值,提高数据安全性。
在对数据库进行数据处理之前,往往要对使用数据接口的使用者、以及输入到数据接口的数据进行鉴权,以确定使用者的合法性以及输入的数据的合法性。因此,示例性实施例中,步骤S204可以具体包括步骤S501、步骤S503和步骤S505,如图5所示。具体地:
步骤S501,根据接口配置表确定数据接口的鉴权服务地址;
步骤S503,通过鉴权服务地址对传入数据接口的请求数据进行鉴权;
步骤S505,如果请求数据鉴权成功,则根据请求数据确定所述输入参数。
接口配置表中可以包括一字段,该字段的值可以为鉴权服务的地址。通过提供鉴权服务的系统的URL可以取得该系统的鉴权服务,当然,也可以自定义开发一系统用于提供鉴权服务。可以理解的是,执行本实施例的基于数据接口的数据处理方法的系统与提供鉴权服务的系统可以是不同的系统。在使用者通过数据接口的访问地址获取数据服务时,可以根据接口配置表中的鉴权服务的URL跳转到一用户界面对使用者进行鉴权;或者,可以通过数据接口的访问地址将传入该数据接口的请求数据转发到对应的URL进行鉴权。传入数据接口的请求数据可以包括使用者向该数据接口传入的参数;也可以包括使用者的ip地址和端口号等。此外请求数据还可以包括其他数据,例如使用者的主机名、操作系统信息等。如果通过请求数据能够确定数据接口使用者为授权用户,则鉴权通过,如果确定数据接口使用者不是授权用户则鉴权失败。通过鉴权服务可以提高数据的安全性。
示例性实施例中,接口配置表可以根据表2所示的数据结构设计。
表2
Figure BDA0002089263470000111
Figure BDA0002089263470000121
其中,Db_set_id字段的字段值可以表示数据接口对应的数据库;通过Interface_param字段对应字段值可以确定数据接口的输入参数;通过Build_sql字段对应的字段值能够确定数据接口的执行代码;通过Auth_url字段对应的字段值能够确定为数据接口提供鉴权服务的地址。此外,is_derect和Direct_url字段可以确定数据接口查询到的数据是否需要转发到第三方服务,也就是说,数据接口对数据库进行处理后,可以将数据处理结果转发到第三方服务,进一步扩展数据接口的功能,在使得数据接口的功能更加丰富的同时,可以避免引入额外的代码开发工作。
示例性实施例中,在步骤S206之前还可以包括以下步骤:
步骤S601,根据数据库的数据库配置表确定数据库的登录信息;
步骤S603,利用登录信息连接数据库,以对数据库进行数据操作。
数据库的数据库配置表可以包括数据库的登录信息。登录信息可以包括数据库的连接地址,例如ip地址、端口号等;还可以包括连接数据库所需的账户信息,例如账户名、密码等。此外,该数据库配置表中还可以包括其他信息,例如数据库名、数据库标识信息等。示例性地,数据库配置表包含的信息如表3所示。
表3
字段名称 字段类型 说明
id int(11)unsigned ID自增
Server Varchar(100) 待操作的数据库的ip
Port Int(11) 待操作的数据库的port
Username Varchar(100) 待操作的数据库的账号
Password Varchar(100) 待操作的数据库的密码
Dbname Varchar(100) 待操作的数据库的数据库名
通过该数据库配置表可以查询得到数据库的登录信息,然后利用登录信息可以远程连接到数据接口对应的数据库,从而对数据库中的数据进行处理。
示例性实施例中,数据接口的定义和配置可以通过接口服务表确定。接口服务表中可以包括数据接口的标识信息,例如接口id,接口的访问地址等;还可以包括数据接口的其他相关信息,例如数据接口的创建者、数据接口的创建时间等。示例性地,接口服务表可以根据表4所示的数据结构来设计。
表4
Figure BDA0002089263470000141
其中,Service_name字段可以指数据接口所属的服务的名称,通过该字段的值可以确定API的访问地址的第一级目录。如果该字段值为空,则表示数据接口通过域名就可以访问到。因此在该第一级目录前还包括默认的域名,例如service.xxx.com,数据接口结构不复杂可以将所有数据接口放在域名目录下。此外,第一级目标下还可以包括多个第二级目录,第二级目录可以指表2中Interface_service_name字段的字段值,即,接口名。例如提供API服务的域名为service.xxx.com,该域名为所有api访问地址的默认路径,如果访问默认路径下的用户中心则其Service_name字段值为user,那么service.xxx.com/user即可访问到用户中心,如果具体的API名为getUserList,则通过Service.xxx.com/user/getUserList可以使用getUserList接口。因此,数据接口的访问地址的格式可以为“域名+服务名+接口名”,或者,数据接口的访问地址还可以包括更多分支,本示例实施例对此不做特殊限定。
在使用者通过数据接口请求数据服务时,可以确定使用者调用的数据接口的接口名,进而根据表2确定该数据接口对应的数据库,以及该数据接口的输入参数,并且利用输入参数以及执行代码确定数据查询语句,从而利用数据查询语句对数据库进行数据处理。
图7示意性示出了本实施例的一种流程。如图7所示,数据接口的使用者输入请求参数请求数据服务。该请求参数中可以包含数据接口的访问地址:service.xxx.com/a/b,通过该访问地址可以确定该数据接口对应的接口配置表,进而在步骤S701中,从该接口配置表中获取Auth_url字段的值。Auth_url字段的值包括一提供鉴权服务的系统的URL,利用该URL进行鉴权处理。在步骤S702中,提供鉴权服务的系统对使用者进行鉴权后,能够返回鉴权结果,判断鉴权结果是否正确,如果鉴权正确则执行步骤S703,如果鉴权失败则流程结束,使用者不能获取上述数据接口所提供的数据服务。在步骤S703中,判断是否需要转发到第三方系统,如果接口配置表中包含需要转发到第三方系统的字段,例如is_derect字段的值为1,则执行步骤S704,根据该接口配置表中配置的第三方系统的地址将请求参数转发到第三方系统处理,并且由第三方系统返回处理结果给使用者。如果在步骤S703中确定不需要转发到第三方系统处理,则执行步骤S705。在步骤S705中,检测请求参数中是否包含特殊字符,对特殊字符进行转义,防止请求参数中存在sql语句注入。然后,在步骤S706中,根据接口配置表中的执行代码确定sql语句。在步骤S707中,执行sql语句后得到目标数据。在步骤S708中,根据上述表1所示的安全配置表对数据库的主键进行替换,得到替换后的数据。在步骤S709中,将替换后的数据打包,返回给数据接口使用者。
示例性实施例中,针对提供数据服务的数据接口的信息可以生成接口服务表,如表4所示,可以将所有的数据接口的相关信息配置在表4中,从而根据表4可以确定数据接口的访问地址,并且该访问地址可以对外提供给用户,以供用户使用数据接口。针对不同的数据库可以配置数据库配置表、接口配置表、安全配置表。其中,通过接口配置表可以确定操作该数据库的数据接口的信息,基于数据接口的信息可以在表2所示的接口配置表中查询数据接口的输入参数、执行代码等信息,根据查询到的信息对数据接口使用者传入数据接口的请求参数进行处理,并且可以根据表3连接到数据库,从而得到对数据库的处理结果。此外,还可以根据表1对处理结果再进行安全处理,然后返回给数据接口使用者。
以下介绍本公开的装置实施例,可以用于执行本公开上述的基于数据接口的数据处理方法。如图8所示,该基于数据接口的数据处理装置800可以包括参数确定单元802、语句确定单元804和数据获取单元806。具体地:
参数确定单元802,用于根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;语句确定单元804,用于通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;数据获取单元806,用于通过所述数据查询语句对所述数据库进行数据处理。
在本公开的一种示例性实施例中,数据获取单元806可以用于:如果所述目标数据中包含符合预设条件的字段,则根据所述数据库的安全配置表对所述字段进行替换,以获取数据处理结果返回给所述数据接口的使用者。
在本公开的一种示例性实施例中,数据获取单元806可以用于:如果所述目标数据中包含所述数据库的主键的输出值,则所述主键的输出值为符合预设条件的字段。
在本公开的一种示例性实施例中,该基于数据接口的数据处理装置800还包括:表确定单元,用于根据安全配置表确定所述数据接口对应的数据库以及所述数据库中的目标表;主键确定单元,用于如果所述目标表中的数据被查询,则根据所述目标表的表名确定所述目标表的主键的输出值,以便确定所述目标数据中的主键。
在本公开的一种示例性实施例中,参数确定单元802包括:地址确定单元,用于根据所述接口配置表确定所述数据接口的鉴权服务地址;数据鉴权单元,用于通过所述鉴权服务地址对传入所述数据接口的请求数据进行鉴权;结果确定单元,用于如果所述请求数据鉴权成功,则根据所述请求数据确定所述输入参数。
在本公开的一种示例性实施例中,该基于数据接口的数据处理装置800还包括:登录信息确定单元,用于根据所述数据库的数据库配置表确定所述数据库的登录信息;数据库连接单元,用于利用所述登录信息连接所述数据库,以对所述数据库进行数据处理。
由于本公开的示例实施例的基于数据接口的数据处理装置的各个功能模块与上述基于数据接口的数据处理方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的基于数据接口的数据处理方法的实施例。
下面参考图9,其示出了适于用来实现本公开实施例的电子设备的计算机系统900的结构示意图。图9示出的电子设备的计算机系统900仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的基于数据接口的数据处理方法。
例如,所述的电子设备可以实现如图2中所示的:步骤S202,根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;步骤S204,通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;步骤S206,通过所述数据查询语句对所述数据库进行数据处理。
又如,所述的电子设备可以实现如图3所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种基于数据接口的数据处理方法,其特征在于,包括:
根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;
通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;
通过所述数据查询语句对所述数据库进行数据处理。
2.根据权利要求1所述的方法,其特征在于,通过所述数据查询语句对所述数据库进行数据处理,包括:
通过所述数据查询语句获取所述数据库中的目标数据;
基于所述目标数据,向所述数据接口的使用者返回数据处理结果。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标数据,向所述数据接口的使用者返回数据处理结果,包括:
如果所述目标数据中包含符合预设条件的字段,则根据所述数据库的安全配置表对所述字段进行替换,以获取数据处理结果返回给所述数据接口的使用者。
4.根据权利要求3所述的方法,其特征在于,所述如果所述目标数据中包含符合预设条件的字段,包括:
如果所述目标数据中包含所述数据库的主键的输出值,则所述主键的输出值为符合预设条件的字段。
5.根据权利要求4所述的方法,其特征在于,根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数之前,还包括:
根据安全配置表确定所述数据接口对应的数据库以及所述数据库中的目标表;
如果所述目标表中的数据被查询,则根据所述目标表的表名确定所述目标表的主键的输出值,以便确定所述目标数据中的主键。
6.根据权利要求1所述的方法,其特征在于,根据数据接口所操作的数据库的接口配置表确定所述数据接口的输入参数,包括:
根据所述接口配置表确定所述数据接口的鉴权服务地址;
通过所述鉴权服务地址对传入所述数据接口的请求数据进行鉴权;
如果所述请求数据鉴权成功,则根据所述请求数据确定所述输入参数。
7.根据权利要求1所述的方法,其特征在于,通过所述数据查询语句对所述数据库进行数据处理之前,还包括:
根据所述数据库的数据库配置表确定所述数据库的登录信息;
利用所述登录信息连接所述数据库,以对所述数据库进行数据处理。
8.一种基于数据接口的数据处理装置,其特征在于,包括:
参数确定单元,用于根据数据接口对应的数据库的接口配置表确定所述数据接口的输入参数;
语句确定单元,用于通过所述接口配置表获取执行代码,结合所述输入参数和所述执行代码确定数据查询语句;
数据获取单元,用于通过所述数据查询语句对所述数据库进行数据处理。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的基于数据接口的数据处理方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的基于数据接口的数据处理方法。
CN201910497992.6A 2019-06-10 2019-06-10 基于数据接口的数据处理方法及装置 Pending CN111752964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910497992.6A CN111752964A (zh) 2019-06-10 2019-06-10 基于数据接口的数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910497992.6A CN111752964A (zh) 2019-06-10 2019-06-10 基于数据接口的数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN111752964A true CN111752964A (zh) 2020-10-09

Family

ID=72672851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910497992.6A Pending CN111752964A (zh) 2019-06-10 2019-06-10 基于数据接口的数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN111752964A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112261059A (zh) * 2020-10-30 2021-01-22 卓尔购信息科技(武汉)有限公司 一种基于java网关技术平台通用性的接口方法及系统
CN112507378A (zh) * 2020-12-08 2021-03-16 广东荣文科技集团有限公司 数据处理方法、电子设备及相关产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104809254A (zh) * 2015-05-19 2015-07-29 郑州悉知信息技术有限公司 一种数据查询方法及装置
CN106095792A (zh) * 2016-05-27 2016-11-09 中国银联股份有限公司 生成数据库操作代码的方法和装置
CN107025253A (zh) * 2016-09-19 2017-08-08 阿里巴巴集团控股有限公司 一种创建数据库接口的方法、数据库操作方法及装置
CN107480280A (zh) * 2017-08-22 2017-12-15 金蝶软件(中国)有限公司 一种数据处理的方法以及相关设备
CN109271403A (zh) * 2018-09-28 2019-01-25 北京京东金融科技控股有限公司 一种数据查询的操作方法、装置、介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104809254A (zh) * 2015-05-19 2015-07-29 郑州悉知信息技术有限公司 一种数据查询方法及装置
CN106095792A (zh) * 2016-05-27 2016-11-09 中国银联股份有限公司 生成数据库操作代码的方法和装置
CN107025253A (zh) * 2016-09-19 2017-08-08 阿里巴巴集团控股有限公司 一种创建数据库接口的方法、数据库操作方法及装置
CN107480280A (zh) * 2017-08-22 2017-12-15 金蝶软件(中国)有限公司 一种数据处理的方法以及相关设备
CN109271403A (zh) * 2018-09-28 2019-01-25 北京京东金融科技控股有限公司 一种数据查询的操作方法、装置、介质及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112261059A (zh) * 2020-10-30 2021-01-22 卓尔购信息科技(武汉)有限公司 一种基于java网关技术平台通用性的接口方法及系统
CN112261059B (zh) * 2020-10-30 2022-05-13 江苏华邦网络科技有限公司 一种基于java网关技术平台通用性的接口方法及系统
CN112507378A (zh) * 2020-12-08 2021-03-16 广东荣文科技集团有限公司 数据处理方法、电子设备及相关产品

Similar Documents

Publication Publication Date Title
TWI647583B (zh) Prompt method and prompting device for login account
CN109614402B (zh) 多维数据查询方法和装置
CN110019080B (zh) 数据访问方法和装置
US11068583B2 (en) Management of login information affected by a data breach
US11368447B2 (en) Oauth2 SAML token service
CN110704476A (zh) 数据处理方法、装置、设备及存储介质
CN113760948A (zh) 一种数据查询的方法及装置
CN110689268A (zh) 一种提取指标的方法和装置
CN115587575A (zh) 数据表创建方法、目标数据查询方法、装置及设备
CN113076153A (zh) 一种接口调用方法和装置
CN111752964A (zh) 基于数据接口的数据处理方法及装置
CN113572763B (zh) 数据处理方法、装置、电子设备及存储介质
CN113761565B (zh) 数据脱敏方法和装置
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN107357562B (zh) 一种信息填充方法、装置及客户端
US9866537B2 (en) Systems and methods for long universal resource locator compression
CN110020040B (zh) 查询数据的方法、装置和系统
CN112100168A (zh) 一种确定数据关联关系的方法和装置
CN116244682A (zh) 数据库的访问方法、装置、设备以及存储介质
CN117009430A (zh) 数据管理方法、装置和存储介质及电子设备
CN110765445B (zh) 处理请求的方法和装置
CN114372078A (zh) 一种数据安全防护方法和装置
CN113704242A (zh) 一种数据处理方法和装置
CN113282591B (zh) 权限过滤方法、装置、计算机设备及存储介质
CN113900895B (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