CN110555178A - 数据代理方法及装置 - Google Patents

数据代理方法及装置 Download PDF

Info

Publication number
CN110555178A
CN110555178A CN201910803720.4A CN201910803720A CN110555178A CN 110555178 A CN110555178 A CN 110555178A CN 201910803720 A CN201910803720 A CN 201910803720A CN 110555178 A CN110555178 A CN 110555178A
Authority
CN
China
Prior art keywords
data
data source
target
requester
configuration information
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.)
Granted
Application number
CN201910803720.4A
Other languages
English (en)
Other versions
CN110555178B (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.)
Seashell Housing Beijing Technology Co Ltd
Original Assignee
Beike 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 Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN201910803720.4A priority Critical patent/CN110555178B/zh
Publication of CN110555178A publication Critical patent/CN110555178A/zh
Application granted granted Critical
Publication of CN110555178B publication Critical patent/CN110555178B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/951Indexing; Web crawling techniques
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据代理方法及装置,其中方法包括:接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。本发明实施例一方面能够稳定实现系统间的交互,另一方面实现了在不修改原有系统的情况下,对交互逻辑、功能进行扩展和修改的可能,增强了系统间交互的灵活性。

Description

数据代理方法及装置
技术领域
本发明实施例涉及计算机技术领域,更具体地,涉及数据代理方法及装置。
背景技术
在业务系统开发中,一般会根据当时的需求,编写业务逻辑。随着时间的推移,业务复杂度会增加,系统的代码也会极度膨胀,维护成本也会相应增大。当业务系统第一次发布后,后续的需求迭代中,大多数情况下,只是在原有功能上做一些扩展,例如,根据用户角色增加权限控制;或根据营销需求,对商品做促销活动;或根据某个依赖系统的变化,对参数或返回值做一些调整等。
以上需求可能是临时的、或实验性的,改动会比较频繁。为了保证这些改动不会影响系统原有的功能,在技术方案设计时,通常会引入某种设计模式,来隔离变化。例如,使用装饰器模式,对已经存在的某些类进行装饰,以此来扩展一些功能;或使用策略模式,来隔离算法和实现,以此来实现不同功能。
在代码中使用设计模式来隔离变化,需要在系统开发之初,对整个业务后续发展需要有一个很好的预见性,知道哪些部分以后可能会变化,从而决定使用哪种设计模式来隔离变化。
然而,不是所有的变化都是可预见的;或者,要预见所有变化,时间成本是很大的。特别是大多数互联网项目,都需要快速迭代,应对市场变化,所以不会像传统项目一样,有一个较长的设计周期。并且已有系统的稳定性很重要,如果设计模式使用的不好,可能会因为某次改动,影响到线上系统的可用性。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的数据代理方法及装置。
第一个方面,本发明实施例提供一种数据代理方法,包括:
接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;
在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;
接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
优选地,所述数据库表包括数据库输入表和数据源表,所述数据库输入表中的每一行表数据中配置一个URL信息和相应的URL唯一标识;所述数据源表中的每一行表数据中配置一个URL唯一标识、一个数据源的输入配置信息以及数据源的访问顺序;
相应地,所述在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据所述表数据中配置的内容向数据源发送数据获取请求的步骤,包括:
在预先构建的数据库输入表中搜索记录请求方自身的URL信息的表数据,将搜索到的表数据作为目标输入表数据,将所述目标输入表数据中记录的URL唯一标识作为目标唯一标识;
在预先构建的数据源表中搜索记录所述目标唯一标识的表数据,将搜索到的表数据作为目标数据源表数据,对于每一个目标数据源表数据,根据所述目标数据源表数据中配置的数据源的输入配置信息,以所述数据源的访问顺序,向所述数据源发送数据获取请求。
优选地,所述输入配置信息采用动态语言编译而成。
优选地,所述输入配置信息为采用预设模板引擎建立的配置模板;相应地,所述根据所述目标数据源表数据中配置的数据源的输入配置信息,以所述数据源的访问顺序,向所述数据源发送数据获取请求的步骤,包括:
根据数据源的访问顺序,通过预设模板引擎依次解析输入配置信息,获得第一输出文本,所述第一输出文本中记录数据源的类型和与数据源交互的具体规则;
根据所述数据源的类型选择对应的数据源解析器作为目标解析器,通过所述目标解析器和所述具体规则生成数据获取请求,根据数据源的访问顺序发送数据获取请求。
优选地,所述预先构建的数据库表还包括数据库输出表,所述数据库输出表中的每一行表数据配置一个URL唯一标识以及输出配置信息;
所述根据所述表数据中的配置信息对将所述结果进行处理,获得请求方使用的数据格式的目标数据的步骤,包括:
在预先构建的数据库输出表中搜索记录所述目标唯一标识的表数据,将搜索到的表数据作为目标数据库输出表数据;
根据所述目标数据库输出表数据中配置的输出配置信息,对从所述数据源获取的结果进行预设逻辑规则处理;
将通过所述预设逻辑规则处理的结果转换为请求方使用的数据格式的目标数据。
优选地,所述输出配置信息采用动态语言编译而成。
优选地,所述输出配置信息为采用预设模板引擎建立的配置模板;相应地,所述根据所述目标数据库输出表数据中配置的输出配置信息,对从所述数据源获取的结果进行预设逻辑规则处理,将处理后的结果转换为请求方使用的数据格式的目标数据的步骤,具体为:
通过预设模板引擎解析所述输出配置信息,获得第二输出文本,所述第二输出文本中记录预设逻辑规则和请求方使用的数据格式,将所述结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据。
优选地,所述第一输出文本中还记录用于标记数据源返回的结果的关键值;
相应地,所述接收所述数据源返回的结果的步骤为:
将各目标解析器返回的结果保存在预设的文件中,将所述结果在文件中的索引设置为所述关键值。
优选地,所述第二输出文本中还记录:数据源返回的结果的关键值以及结果中的待处理数据;
所述将所述结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据的步骤,包括:
以所述关键值为索引,在所述文件中查询对应的结果,从所述结果中挑选出所述待处理的数据,将所述待处理的数据以预设逻辑规则进行处理,将处理后的数据的数据格式转换为请求方使用的数据格式,作为所述目标数据。
优选地,所述接收由请求方发送的访问请求,之前还包括:
配置接口,并向请求方暴露配置好的接口,以使得通过所述接口接收所述访问请求;
其中,暴露的接口包括用于表征URL的信息。
第二个方面,本发明实施例提供一种数据代理装置,包括:
请求接收模块,用于接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;
表数据匹配模块,用于在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;
数据发送模块,用于接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的数据代理方法及装置,通过以数据库表的形式预先携带两个系统交互所需的信息,一方面能够稳定实现系统间的交互,另一方面实现了在不修改原有系统的情况下,对交互逻辑、功能进行扩展和修改的可能,增强了系统间交互的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据代理方法的流程示意图;
图2为本发明实施例提供的数据代理装置的结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据代理方法的流程示意图,如图1所示,该方法包括:
步骤S101、接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息。
需要说明的是,本发明实施例的执行主体相当于两个系统间的代理,用于建立起两个系统间的数据交互。请求方在与本发明实施例的执行主体进行交互时,访问请求中携带请求方的URL信息,使得执行主体通过接收访问请求即可获知相应的请求方,建立起请求方与执行主体间的交互关系。相应的,执行主体需要首先配置好接口,接口需要暴露出表征URL的信息。
具体地,本发明实施例提供数据接口以接收请求方发送的访问请求。例如,springmvc框架支持接收多种格式的数据,针对请求方可以发送的访问请求的格式,设置接口。例如,在spring controller的一个实现中:
使用@RequestParam Map<String,Object>param类型,来接收get或form表单的参数;
使用@RequestBody Map<String,Object>param类型,来接收JSONObject参数;
使用@RequestBody Object param类型,来接收JSONArray参数;
使用HttpServletRequest request类型,接收二进制参数。
本发明实施例中访问请求的数据格式并不是预先存储在执行主体中的,而是通过由执行主体通过接口获知,因此本方案能够灵活适应请求方发送的数据格式。由于请求方使用的数据格式很可能会存在更新的情况,如果采用预先存储在执行主体中的方式,会降低本发明实施的数据代理方法的灵活性。
作为一种可选实施例,接收由请求方发送的访问请求,之前还包括:配置接口,并向请求方暴露配置好的接口,以使得通过所述接口接收所述访问请求;
其中,暴露的接口包括用于表征URL的信息。
例如,系统对外暴露几种不同的接口,以表示接收哪种类型的参数:
接口/form/***/{url},表示接收普通的get或form表单参数。
接口/jsonobj/***/{url},表示接收JSONObject参数。
接口/jsonarray/***/{url},表示接收JSONArray参数。
接口/input/***/{url},表示接收二进制参数。
上述接口中,***表示一种输出格式。{url}表示接收一个动态的url,从而实现接口的可复用。本发明实施例的执行主体只有一个Controller,该Controller中定义的每个接口,对应一种不同的输入输出格式,使用者根据这个约定,只需要看到url的前缀,就能知道这个接口是什么类型的输入,例如/form/***/{url},根据前缀/form,表示接收get或form表单的输入,如果同一个url,想换成JSONObject类型的输入,只需将前缀替换为jsonobj(即,替换为/jsonobj/***/{url})即可。即,利用预定义的多种组合实现接口请求参数处理的可复用,利用url的动态性实现可配置化。
步骤S102、在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置向数据源发送数据获取请求。
在关系数据库中,数据库表可以是一系列二维数组的集合,用来代表和储存数据对象之间的关系。它由纵向的列和横向的行组成。本发明实施例以数据库表的方式配置数据代理的相关信息,在数据库表的每一行表数据中以不同字段存储与数据代理相关的信息,其中就包括配置信息。可以理解的是,每一项配置信息用于实现不同的功能,例如,数据代理过程中可能涉及:格式转换、数据提取/数据逻辑处理、发送请求等步骤,那么就需要涉及用于格式转换的配置信息、用于数据提取的配置信息、用于数据逻辑处理的配置信息以及用于发送请求的配置信息等,本发明实施例对配置信息的数量和种类不做具体的限定。
步骤S103、接收数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
可以理解的是,与URL相关的一些表数据中的配置信息用于将数据源返回的接管转换为请求方使用的数据格式的目标数据,在实际应用中,目标数据既可以是数据源返回的全部结果,也可以是从全部结果中经过逻辑规则处理或者经过选择后确定的部分结果。
需要说明的是,本发明实施例通过以数据库表的形式预先存储两个系统交互所需的配置信息,一方面能够稳定实现系统间的交互,另一方面实现了在不修改原有系统的情况下,只需修改相关的表数据,即可实现对交互逻辑、功能进行扩展和修改的可能,增强了系统间交互的灵活性。
在上述各实施例的基础上,作为一种可选实施例,本发明实施例的数据库表包括数据库输入表和数据源表,所述数据库输入表中的每一行表数据中配置一个URL信息和相应的URL唯一标识;所述数据源表中的每一行表数据中配置一个URL唯一标识、一个数据源的输入配置信息以及数据源的访问顺序。
具体地,数据库输入表中可以包括以下字段:id、url和desc,其中,id字段是该数据库表中的主键,用于存储URL唯一标识。url字段用于存储url,表示一个业务逻辑。desc字段则用于对URL的含义进行描述。数据源表中可以包括以下字段:urlid、source、desc和order,其中,urlid字段对应数据库输入表中的id字段。Source字段用于存储一个数据源的输入配置信息,desc字段用于描述一个数据源,order字段则用于表示数据源的访问顺序。
本发明实施例通过配置数据库输入表和数据源表,当URL信息确定后,即可确定对应的URL唯一标识,再根据URL唯一标识就可进一步确定一个数据源的输入配置信息,数据源的输入配置信息即用于实现与数据源进行交互的相关信息,根据数据源的输入配置信息即可实现执行主体与数据源的交互。
相应地,所述在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据所述表数据中配置的内容向数据源发送数据获取请求的步骤,包括;
步骤S201、在预先构建的数据库输入表中搜索记录请求方自身的URL信息的表数据,将搜索到的表数据作为目标输入表数据,将所述目标输入表数据中记录的URL唯一标识作为目标唯一标识;
步骤S202、在预先构建的数据源表中搜索记录所述目标唯一标识的表数据,将搜索到的表数据作为目标数据源表数据,对于每一个目标数据源表数据,根据所述目标数据源表数据中配置的数据源的输入配置信息,按照数据源的访问顺序,向数据源发送数据获取请求。
可以理解的是,本发明实施例中数据库输入表中的一个表数据可以对应数据源表中的多个表数据,对应的多个表数据中记载了数据源的访问顺序,按照访问顺序分别访问数据源。例如,数据库输入表中的一个表数据对应数据源表中的三个表数据a、b和c,其中表数据a中存储了与数据源甲的输入配置信息以及访问顺序:2;表数据b中存储了与数据源乙的输入配置信息以及访问顺序:3;表数据c中存储了与数据源丙的输入配置信息以及访问顺序:1;从而本发明实施例的执行主体依次向数据库丙、甲、乙发送数据获取请求。
在上述各实施例的基础上,作为一种可选实施例,输入配置信息采样动态语言编译而成。
动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,例如freemark语言、velicity语言、jython语言等等。为了实现与数据库交互的可复用及可配置化效果,本发明实施例对输入配置信息使用动态语言进行编译,从而实现了动态逻辑。
通过对不同类型的动态语言进行比较,发现freemark语言相比其他动态语言在语法上更加丰富,相应的可提供的功能也更多。因此输入配置信息采样freemark语言编译。
在上述各实施例的基础上,作为一种可选实施例,输入配置信息为采用预设模板引擎建立的配置模板。
本发明实施例为了实现执行主体与数据源交互信息的可复用以及可配置化,将数据源的建立、参数传递、获取响应结果及各种异常处理,以模版方法的形式实现,而具体连接地址、传递参数,通过配置的方式暴露给使用方,这些配置存储在数据源表中。
相应地,所述根据所述目标数据源表数据中配置的数据源的输入配置信息,以所述数据源的访问顺序,向所述数据源发送数据获取请求,具体为:
步骤S301、根据数据源的访问顺序,通过预设模板引擎依次解析输入配置信息,获得第一输出文本,所述第一输出文本中记录数据源的类型和与数据源交互的具体规则;
步骤S302、根据所述数据源的类型选择对应的数据源解析器作为目标解析器,通过所述目标解析器和所述具体规则生成数据获取请求,根据数据源的访问顺序发送数据获取请求。
具体地,输入配置信息可以是通过freemark模板引擎建立的freemark配置模板,因此,通过freemark引擎解析后,就会得到第一输出文本,包含了两个字段:type和desc,type字段中记录流数据的类型,通过type字段,可区分是哪种数据源请求,从而在解析时,调用不同的数据源解析器。结合使用数据源解析器,进一步实现了本方案的可复用。Desc字段中记录了与数据源交互的具体规则,该字段是一个JSONObject格式的数据,不同type对应的desc,内容不一样。例如,对于一个mysql请求,该JSONObject中包含如下字段
connect:数据库连接配置;
sql:请求的sql,可以是预编译类型的sql;
param:一个数组,是传递给预编译类型的sql的参数,如果是普通sql,则此字段为一个空数组。
在上述各实施例的基础上,作为一种可选实施例,预先构建的数据库表还包括数据库输出表,所述数据库输出表中的每一行表数据配置一个URL唯一标识以及输出配置信息;
当URL信息确定后,即可确定对应的URL唯一标识,再根据URL唯一标识就可进一步确定输出配置信息,输出配置信息即用于指定输出逻辑和输出格式,根据输出配置信息即可实现执行主体与请求方的交互。
所述根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据的步骤,包括:
步骤S401、在预先构建的数据库输出表中搜索记录目标唯一标识的表数据,将搜索到的表数据作为目标数据库输出表数据;
步骤S402、根据目标数据库输出表数据中配置的输出配置信息,对从所述数据源获取的结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据。
本发明实施例通过设置与URL相关的数据库输出表,在确定URL唯一标识的情况下,遍历数据库输出表获得记录URL唯一表示的表数据,根据该表数据中的输出配置信息,将所述结果进行处理并转换为请求方使用的数据格式的目标数据。
在上述各实施例的基础上,输出配置信息是通过动态语言编译而成。输出配置信息为采用预设模板引擎建立的配置模板。相应地,上述根据目标数据库输出表数据中配置的输出配置信息,将结果转换为请求方使用的数据格式的目标数据的步骤,包括:
通过预设模板引擎解析所述输出配置信息,获得第二输出文本,所述第二输出文本中记录预设逻辑规则和请求方使用的数据格式,将所述结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据。
在上述各实施例的基础上,作为一种可选实施例,所述第一输出文本中还记录用于标记数据源返回的结果的关键值;
相应地,所述接收所述数据源返回的结果,具体为:
将各目标解析器返回的结果保存在预设的文件中,将所述结果在文件中的索引设置为所述关键值。
需要说明的是,现有的数据库表中配置的大多是一些纯文本,本发明实施例为了加入动态逻辑,在数据库表中加入动态语言(例如freemark)的语句。假设执行主体A请求数据源B,B返回较多内容,但是执行主体A只希望返回其中的某个部分,则需要在配置中,使用freemark来实现。例如,执行主体A请求数据源B和数据源C,假设B、C的结果对应的关键值key为b、c,B返回的结果为{'num1':123,'num2':456},C返回的结果为{'num3':123,'num4':456},将两个结果保存在map文件中:{‘b’,{'num1':123,'num2':456},‘c’,{'num3':123,'num4':456}}。
在上述各实施例的基础上,作为一种可选实施例,所述第二输出文本中还记录:数据源返回的结果的关键值以及结果中的待处理数据;
所述将所述结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据的步骤,包括:
以所述关键值为索引,在所述文件中查询对应的结果,从所述结果中挑选出所述待处理的数据,将所述待处理的数据的格式进行预设逻辑规则的处理,将处理后的数据的数据格式转换为请求方使用的数据格式,作为所述目标数据。
如果执行主体A只想要数据源B中的num1,数据源C中的num3,则需要在输出配置信息中加入如下freemark语句:${map['a'].num1},${map['b'].num3}。这些${...}就是freemark语法编译的输出配置信息,在${...}中,可以通过map['b']取到B的结果,通过map['c']取到C的结果。需要注意的是,数据源返回的格式不会变化,例如,返回{'num1':123,'num2':456},则表示,返回值一定会包含num1和num2字段。
图2为本发明实施例提供的数据代理装置的结构示意图,如图2所示,该数据代理装置包括:请求接收模块201、表数据匹配模块202和数据发送模块203,其中:
请求接收模块201,用于接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息。
需要说明的是,本发明实施例的执行主体相当于两个系统间的代理,用于建立起两个系统间的数据交互。请求方在与本发明实施例的执行主体进行交互时,访问请求中携带请求方的URL信息,使得执行主体通过接收访问请求即可获知相应的请求方,建立起请求方与执行主体间的交互关系。
具体地,本发明实施例提供数据接口以接收请求方发送的访问请求。例如,springmvc框架支持接收多种格式的数据,针对请求方可以发送的访问请求的格式,设置接口。例如,在spring controller的一个实现中:
使用@RequestParam Map<String,Object>param类型,来接收get或form表单的参数;
使用@RequestBody Map<String,Object>param类型,来接收JSONObject参数;
使用@RequestBody Object param类型,来接收JSONArray参数;
使用HttpServletRequest request类型,接收二进制参数。
本发明实施例中访问请求的数据格式并不是预先存储在执行主体中的,而是通过由执行主体通过接口获知。由于请求方使用的数据格式很可能会存在更新的情况,如果采用预先存储在执行主体中的方式,会降低本发明实施的数据代理方法的灵活性。
表数据匹配模块202,用于在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求。
在关系数据库中,数据库表是一系列二维数组的集合,用来代表和储存数据对象之间的关系。它由纵向的列和横向的行组成。本发明实施例以数据库表的方式配置数据代理的相关信息,在数据库表的每一行表数据中以不同字段存储与数据代理相关的信息,其中就包括配置信息。可以理解的是,每一项配置信息用于实现不同的功能,例如,数据代理过程中可能涉及:格式转换、数据提取、发送请求等步骤,那么就需要涉及用于格式转换的配置信息、用于数据提取的配置信息以及用于发送请求的配置信息,等等,本发明实施例对配置信息的数量和种类不做具体的限定。
数据发送模块203,用于接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
可以理解的是,与URL相关的一些表数据中的配置信息用于将数据源返回的接管转换为请求方使用的数据格式的目标数据,在实际应用中,目标数据既可以是数据源返回的全部结果,也可以是从全部结果中确定的部分结果。
本发明实施例提供的数据代理装置,具体执行上述各数据代理方法实施例流程,具体请详见上述各数据代理方法实施例的内容,在此不再赘述。本发明实施例提供的数据代理装置通过以数据库表的形式预先携带两个系统交互所需的信息,一方面能够稳定实现系统间的交互,另一方面实现了在不修改原有系统的情况下,对交互逻辑、功能进行扩展和修改的可能,增强了系统间交互的灵活性。
图3为本发明实施例提供的电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的数据代理方法,例如包括:接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据代理方法,例如包括:接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据代理方法,其特征在于,包括:
接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;
在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;
接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
2.根据权利要求1所述的数据代理方法,其特征在于,所述数据库表包括数据库输入表和数据源表,所述数据库输入表中的每一行表数据中配置一个URL信息和相应的URL唯一标识;所述数据源表中的每一行表数据中配置一个URL唯一标识、一个数据源的输入配置信息以及数据源的访问顺序;
相应地,所述在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据所述表数据中配置的内容向数据源发送数据获取请求的步骤,包括:
在预先构建的数据库输入表中搜索记录请求方自身的URL信息的表数据,将搜索到的表数据作为目标输入表数据,将所述目标输入表数据中记录的URL唯一标识作为目标唯一标识;
在预先构建的数据源表中搜索记录所述目标唯一标识的表数据,将搜索到的表数据作为目标数据源表数据,对于每一个目标数据源表数据,根据所述目标数据源表数据中配置的数据源的输入配置信息,以所述数据源的访问顺序,向所述数据源发送数据获取请求。
3.根据权利要求2所述的数据代理方法,其特征在于,所述输入配置信息采用动态语言编译而成。
4.根据权利要求2或3所述的数据代理方法,其特征在于,所述输入配置信息为采用预设模板引擎建立的配置模板;相应地,所述根据所述目标数据源表数据中配置的数据源的输入配置信息,以所述数据源的访问顺序,向所述数据源发送数据获取请求的步骤,包括:
根据数据源的访问顺序,通过预设模板引擎依次解析输入配置信息,获得第一输出文本,所述第一输出文本中记录数据源的类型和与数据源交互的具体规则;
根据所述数据源的类型选择对应的数据源解析器作为目标解析器,通过所述目标解析器和所述具体规则生成数据获取请求,根据数据源的访问顺序发送数据获取请求。
5.根据权利要求4所述的数据代理方法,其特征在于,所述预先构建的数据库表还包括数据库输出表,所述数据库输出表中的每一行表数据配置一个URL唯一标识以及输出配置信息;
所述根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据的步骤,包括:
在预先构建的数据库输出表中搜索记录所述目标唯一标识的表数据,将搜索到的表数据作为目标数据库输出表数据;
根据所述目标数据库输出表数据中的输出配置信息,对从所述数据源获取的结果进行预设逻辑规则处理,将处理后的结果转换为请求方使用的数据格式的目标数据。
6.根据权利要求5所述的数据代理方法,其特征在于,所述输出配置信息采用动态语言编译而成。
7.根据权利要求6所述的数据代理方法,其特征在于,所述输出配置信息为采用预设模板引擎建立的配置模板;相应地,所述根据目标数据库输出表数据中的输出配置信息,对从所述数据源获取的结果进行预设逻辑规则处理,将处理后的结果转换为请求方使用的数据格式的目标数据的步骤,包括:
通过预设模板引擎解析所述输出配置信息,获得第二输出文本,所述第二输出文本中记录预设逻辑规则和请求方使用的数据格式,将所述结果以预设逻辑规则进行处理,将处理后的结果转换为请求方使用的数据格式的目标数据。
8.一种数据代理装置,其特征在于,包括:
请求接收模块,用于接收由请求方发送的访问请求,所述访问请求中携带请求方自身的URL信息;
表数据匹配模块,用于在预先构建的数据库表中搜索与所述URL信息相关联的表数据,根据表数据中的配置信息向数据源发送数据获取请求;
数据发送模块,用于接收所述数据源返回的结果,根据表数据中的配置信息对所述结果进行处理,获得请求方使用的数据格式的目标数据,将所述目标数据发送至所述请求方。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7中任意一项所述的数据代理方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7中任意一项所述的数据代理方法。
CN201910803720.4A 2019-08-28 2019-08-28 数据代理方法及装置 Active CN110555178B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910803720.4A CN110555178B (zh) 2019-08-28 2019-08-28 数据代理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910803720.4A CN110555178B (zh) 2019-08-28 2019-08-28 数据代理方法及装置

Publications (2)

Publication Number Publication Date
CN110555178A true CN110555178A (zh) 2019-12-10
CN110555178B CN110555178B (zh) 2020-07-21

Family

ID=68736803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910803720.4A Active CN110555178B (zh) 2019-08-28 2019-08-28 数据代理方法及装置

Country Status (1)

Country Link
CN (1) CN110555178B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487163A (zh) * 2020-11-30 2021-03-12 广州品唯软件有限公司 自动化流程的执行方法及其接口数据的获取方法、装置
CN112487454A (zh) * 2020-12-03 2021-03-12 天聚地合(苏州)数据股份有限公司 一种数据管理方法、装置、设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200772A1 (en) * 2003-12-08 2006-09-07 Sathiyamoorthy Dhanapal Procedural computation engine for providing complex calculated data results to an object-oriented server system accessible to service clients and agents over a data packet network
CN101464894A (zh) * 2008-12-30 2009-06-24 北京中创信测科技股份有限公司 数据查询方法和系统
CN102135976A (zh) * 2010-09-27 2011-07-27 华为技术有限公司 超文本标识语言页面结构化数据提取方法及装置
CN103095479A (zh) * 2011-11-04 2013-05-08 华为技术有限公司 业务配置的方法及装置
CN104317839A (zh) * 2014-10-10 2015-01-28 北京国双科技有限公司 生成报表模板的方法和装置
CN104657140A (zh) * 2015-02-10 2015-05-27 广州华多网络科技有限公司 代码生成方法及装置
CN104881285A (zh) * 2015-05-25 2015-09-02 北京理工大学 基于本体的代码片段标注与重用系统
CN105912689A (zh) * 2016-04-20 2016-08-31 郑州悉知信息科技股份有限公司 一种网站显示方法、装置及系统
CN106547766A (zh) * 2015-09-18 2017-03-29 华为技术有限公司 一种数据访问方法和装置
CN107645507A (zh) * 2017-10-16 2018-01-30 北京知道创宇信息技术有限公司 一种数据处理方法、反诈骗设备及计算机可读存储介质
CN107656954A (zh) * 2017-01-19 2018-02-02 深圳市谷熊网络科技有限公司 信息推送方法、推送信息的获取方法及装置
CN110134380A (zh) * 2019-03-29 2019-08-16 北京车和家信息技术有限公司 一种基于模板引擎的代码生成方法、装置及电子设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200772A1 (en) * 2003-12-08 2006-09-07 Sathiyamoorthy Dhanapal Procedural computation engine for providing complex calculated data results to an object-oriented server system accessible to service clients and agents over a data packet network
CN101464894A (zh) * 2008-12-30 2009-06-24 北京中创信测科技股份有限公司 数据查询方法和系统
CN102135976A (zh) * 2010-09-27 2011-07-27 华为技术有限公司 超文本标识语言页面结构化数据提取方法及装置
CN103095479A (zh) * 2011-11-04 2013-05-08 华为技术有限公司 业务配置的方法及装置
CN104317839A (zh) * 2014-10-10 2015-01-28 北京国双科技有限公司 生成报表模板的方法和装置
CN104657140A (zh) * 2015-02-10 2015-05-27 广州华多网络科技有限公司 代码生成方法及装置
CN104881285A (zh) * 2015-05-25 2015-09-02 北京理工大学 基于本体的代码片段标注与重用系统
CN106547766A (zh) * 2015-09-18 2017-03-29 华为技术有限公司 一种数据访问方法和装置
CN105912689A (zh) * 2016-04-20 2016-08-31 郑州悉知信息科技股份有限公司 一种网站显示方法、装置及系统
CN107656954A (zh) * 2017-01-19 2018-02-02 深圳市谷熊网络科技有限公司 信息推送方法、推送信息的获取方法及装置
CN107645507A (zh) * 2017-10-16 2018-01-30 北京知道创宇信息技术有限公司 一种数据处理方法、反诈骗设备及计算机可读存储介质
CN110134380A (zh) * 2019-03-29 2019-08-16 北京车和家信息技术有限公司 一种基于模板引擎的代码生成方法、装置及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487163A (zh) * 2020-11-30 2021-03-12 广州品唯软件有限公司 自动化流程的执行方法及其接口数据的获取方法、装置
CN112487163B (zh) * 2020-11-30 2024-04-12 广州品唯软件有限公司 自动化流程的执行方法及其接口数据的获取方法、装置
CN112487454A (zh) * 2020-12-03 2021-03-12 天聚地合(苏州)数据股份有限公司 一种数据管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110555178B (zh) 2020-07-21

Similar Documents

Publication Publication Date Title
JP6761112B2 (ja) 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム
CN111209004B (zh) 代码转换方法及装置
US8584112B2 (en) Open application lifecycle management framework
US20170357653A1 (en) Unsupervised method for enriching rdf data sources from denormalized data
CN108846753B (zh) 用于处理数据的方法和装置
CN110502212B (zh) 一种面向多语言的高并发在线开发支撑方法
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN107480252A (zh) 一种数据查询方法、客户端、服务端及系统
CN111045683A (zh) 小程序代码编译方法、装置、设备及介质
CN110555178B (zh) 数据代理方法及装置
CN110866029A (zh) sql语句构建方法、装置、服务器及可读存储介质
EP3474158A1 (en) Method and device for executing distributed computing task
CN111125064A (zh) 一种生成数据库模式定义语句的方法和装置
CN115016784B (zh) 低代码应用复用方法、应用解析系统、设备及存储介质
US10942732B1 (en) Integration test framework
CN106802901A (zh) 数据库查询的方法及装置
Loseto et al. Linked Data (in low-resource) Platforms: a mapping for Constrained Application Protocol
CN114003818A (zh) 页面推荐方法、装置、服务器及存储介质
CN112491943B (zh) 数据请求方法、装置、存储介质和电子设备
CN113536748A (zh) 一种生成图表数据的方法和装置
CN114510501A (zh) 一种对接口数据实时处理的方法和装置
CN105808628A (zh) 网页转码方法、装置及系统
AU2018313995B2 (en) Systems and methods for providing globalization features in a service management application interface
CN113110844A (zh) 一种数据库更新方法及系统
CN113760949B (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
TA01 Transfer of patent application right

Effective date of registration: 20200225

Address after: 100085 Floor 102-1, Building No. 35, West Second Banner Road, Haidian District, Beijing

Applicant after: Seashell Housing (Beijing) Technology Co., Ltd.

Address before: 300 457 days Unit 5, Room 1, 112, Room 1, Office Building C, Nangang Industrial Zone, Binhai New Area Economic and Technological Development Zone, Tianjin

Applicant before: Shell Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40016790

Country of ref document: HK