一种数据调用方法和装置与流程

文档序号:12915917阅读:164来源:国知局
一种数据调用方法和装置与流程

本发明涉及互联网技术领域,具体涉及一种数据调用方法和装置。



背景技术:

webservice是一个平台独立的,低耦合的,自包含的,基于可编程的web的应用程序。webservice技术能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。webservice采用http(hypertexttransferprotocol,超文本传输协议)传输数据,采用xml(可扩展标记语言)格式封装数据。xml是webservice平台中表示数据的格式,也是各种应用程序之间进行数据传输的最常用的工具。除了易于建立和易于分析外,xml主要的优点在于它既是平台无关的,又是厂商无关的。

现有技术中,不同客户端在调用webservice服务进行数据交互时,通常按照固定大小的内容返回调用结果,而对于移动终端(如智能手机)和pc这样不同的终端上运行的客户端而言,其数据传输带宽、速率、资源等方面存在着差异。例如,用户通过移动终端调用webservice服务进行数据交互时更关注数据流量。这种返回固定大小内容的方法势必影响用户的使用体验,不能满足用户某些场景下的使用需求,浪费传输资源,因而亟待解决。



技术实现要素:

本发明提供了一种数据调用方法和装置,以解决现有的webservice调用结果返回时,通常返回固定大小的数据内容造成的数据流量浪费,影响数据传输速率和用户体验的问题。

根据本发明的一个方面,提供了一种数据调用方法,该方法包括:

接收用户发送的webservice调用请求;

对调用请求进行解析得到配置文件标识参数的值,利用配置文件标识参数的值从保存的多个配置文件中选择对应的配置文件,配置文件中有用户自 定义的返回字段;

根据调用请求中的请求参数以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选,筛选出返回字段对应的数据;

将包含返回字段对应的数据的调用结果发送给用户。

可选地,配置文件标识参数为webservice的方法版本号,配置文件以方法版本号为唯一标识,不同配置文件中用户自定义的返回字段不同。

可选地,该方法还包括:在根据调用请求以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选之前,

检查调用请求传入的请求参数是否合法,是则,根据调用请求传入的请求参数向数据库发送数据查询请求,否则,向用户发送请求参数不合法的通知,使得用户重新确认请求参数。

可选地,该方法还包括:利用预先设计好格式的可扩展标记语言xml配置文件接收用户自定义的需要返回的字段后,生成对应的xml配置文件并保存。

可选地,将包含返回字段对应的数据的调用结果发送给用户包括:

根据调用请求中的返回格式参数,将包含返回字段对应的数据的调用结果转换成xml格式的字符串或json格式的字符串发送给用户。

根据本发明的另一个方面,提供了一种数据调用装置,该装置包括:

请求接收单元,用于接收用户发送的webservice调用请求;

配置文件选择单元,用于对调用请求进行解析得到配置文件标识参数的值,利用配置文件标识参数的值从保存的多个配置文件中选择对应的配置文件,配置文件中有用户自定义的返回字段;

数据筛选单元,用于根据调用请求中的请求参数以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选,筛选出返回字段对应的数据;

结果返回单元,用于将包含返回字段对应的数据的调用结果发送给用户。

可选地,配置文件标识参数为webservice的方法版本号,配置文件以 方法版本号为唯一标识,不同配置文件中用户自定义的返回字段不同。

可选地,该装置还包括:参数检查单元,

参数检查单元,用于检查调用请求传入的请求参数是否合法,是则,根据调用请求传入的请求参数向数据库发送数据查询请求,否则,向用户发送请求参数不合法的通知,使得用户重新确认请求参数。

可选地,该装置还包括:配置文件生成单元,

配置文件生成单元,用于利用预先设计好格式的可扩展标记语言xml配置文件接收用户自定义的需要返回的字段后,生成对应的xml配置文件并保存。

可选地,结果返回单元,具体用于根据调用请求中的返回格式参数,将包含返回字段对应的数据的调用结果转换为xml格式的字符串或json格式的字符串发送给用户。

本发明的有益效果是:本发明实施例的这种数据调用方法和装置,通过预先设置配置文件,配置文件中记录用户自定义的返回字段,从而在接收到用户的调用请求时,找到对应的配置文件,并利用该配置文件对查询结果进行筛选,将用户需要的字段筛选出来作为最终的调用结果返回给用户,从而避免了现有技术中对运行在不同终端中的客户端都返回同样的数据内容。由于配置文件中记录有每个用户自定义的自己想要返回的数据内容,对于当前请求用户,只需要利用配置文件将该用户想要的数据筛选出来并返回,不需要返回全部的数据也节省了数据流量,提升了用户体验。

附图说明

图1是本发明一个实施例的一种数据调用方法的流程图;

图2是本发明又一个实施例的一种数据调用方法的实现类图;

图3是本发明又一个实施例的一种数据调用方法的时序图;

图4是本发明再一个实施例的一种数据调用装置的框图。

具体实施方式

本发明的设计构思是:针对现有技术中,用户调用webservice返回数据时,不同客户端都按照固定数据大小返回调用结果无法满足用户某些场景下使用需求的问题,提出了一种数据调用方法。本发明的这种方法的核心在 于,预先设置webservice配置文件接收用户自定义的返回字段,并保存配置文件。当接收到某一用户的webservice服务调用请求时,根据用户请求中携带的标识查找对应的配置文件,并利用请求中的相应参数在数据库中查找初步结果,然后利用配置文件中用户自定义的字段对初步结果进行筛选,过滤出用户想要返回的字段对应的数据,将这些数据作为最终的返回结果发送给用户,从而使得当用户通过移动终端(如手机)调用webservice服务时能够避免返回不需要的字节,节省数据流量,提升用户体验。

图1是本发明一个实施例的一种数据调用方法的流程图,参见图1,本实施例的数据调用方法包括:

步骤s11,接收用户发送的webservice调用请求;

步骤s12,对调用请求进行解析得到配置文件标识参数的值,利用配置文件标识参数的值从保存的多个配置文件中选择对应的配置文件,配置文件中有用户自定义的返回字段;

这里的配置文件标识参数可以是webservice的方法版本号,配置文件以方法版本号为唯一标识,不同配置文件中用户自定义的返回字段不同。

步骤s13,根据调用请求中的请求参数以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选,筛选出返回字段对应的数据。

步骤s14,将包含返回字段对应的数据的调用结果发送给用户。

这里,可以根据调用请求中的返回格式参数,将包含返回字段对应的数据的调用结果转换成xml(可扩展标记语言)格式的字符串或json(javascriptobjectnotation,是一种轻量级的数据交换格式)格式的字符串发送给用户。例如,当调用者只是为获取数据进行数据交互而调用webservice时,可以返回xml格式的数据,如果调用方还有在终端界面展示的需求,则可以返回json格式数据方便显示。

通过图1所示的方法,当接收到用户发送的webservice调用请求时,对调用请求进行解析得到配置文件标识参数的值,利用配置文件标识参数的值从保存的多个配置文件中选择对应的配置文件,然后根据调用请求中的请求参数以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据 筛选,筛选出返回字段对应的数据,从而将包含返回字段对应的数据的调用结果发送给用户。如此,只需要返回用户自定义的字段对应的数据,避免了传输不必要的字节影响传输速度,节省了数据流量,尤其在用户通过手机客户端调用webservice服务时,有益效果更加明显。

这里的字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。

在本实施例中,图1所示方法还包括:在根据调用请求以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选之前,检查调用请求传入的请求参数是否合法,是则,根据调用请求传入的请求参数向数据库发送数据查询请求,否则,向用户发送请求参数不合法的通知,使得用户重新确认请求参数。通过检查传入参数是否合法,可以保证查询的有效性,也方便用户及时检查确认当前的参数。

举例而言,这里用户调用webservice服务是为了查询出当月工资中的公积金的金额,这样,请求参数可以包括:用户的登录账号、年份和月份。

需要说明的是,图1所示的方法还包括:利用预先设计好格式的可扩展标记语言xml配置文件接收用户自定义的需要返回的字段后,生成对应的xml配置文件并保存。也就是说,配置文件可以是一种格式化的标准文件,用户只需要在里面选择或填写其要返回的字段即可,这样不需要用户关心和设计配置文件,用户体验更好。

以下示意了根据用户请求中的配置文件标识参数确定配置文件的部分代码:

由上述部分代码可知,本实施例中,用户请求中传入的配置文件标识参数verionno=“version_0”,也就是说在多个配置文件中查找方法版本号为0的配置文件,然后根据用户请求中传入的登录账户longinaccount、登录人账号参数在数据库中查询该参数值对应的数据,从而得到返回结果发送给用户。正是由于采用了预定格式的webservice配置文件接收用户自定义的返回字段并保存,这样在后续处理时才能利用该配置文件向不同用户返回对应的字段的数据,避免了返回用户不需要的字节造成的流量浪费。

实际应用过程中,数据调用方法需要注意以下几点:

(1)设计webservice.xml配置文件的格式,快速解析xml转换成javabean。

(2)调用结果返回时,动态的利用xml+hibernate架构并通过java代码快速的返射出需要返回的字段,并且将这些字段封装成javabean。

(3)可以不使用第三方的压缩包jar转json字符串进行返回,而使用springmvc自带的方式根据请求的url转换成调用者所需要的格式,适应多种用户场景匹配出xml/json格式返回。

这里先对webservice的调用工作原理进行简单说明:对客户端而言,给各类客户端api传递wsdl(webservicesdescriptionlanguage,网络服务描述语言)文件的url地址,这些api就会创建出底层的代理类,调用这些代理,就可以访问到webservice服务。代理类会把客户端的方法调用 变成soap(simpleobjectaccessprotocol,简单对象访问协议)格式的请求数据再通过http(hypertexttransferprotocol,超文本传输协议)协议发出去,并把接收到的soap数据变成返回值返回。soap是一种轻量的、简单的、基于xml(标准通用标记语言下的一个子集)的协议,它被设计成在web上交换结构化的和固化的信息。

对服务端而言,当远程调用客户端通过http协议向其发送soap格式的请求数据时,服务端分析这个数据即可知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息返回给客户端。

现有技术中客户端调用webservice服务时,通常都是返回固定大小的数据内容,而有些数据是用户不需要返回的,这样就浪费了数据传输资源,本申请的技术方案中,主要是利用预先保存的xml自定义配置并进行java的解析,来分析出调用者需求返回哪些字段,该xml配置文件根据每一个客户现场的不同来进行配置解析,最终达到节省返回客户端调用节字的作用,尤其是当手机端进行webservice服务调用时,如果能节省流量,势必会大大提升用户体验。

以下结合一个具体的实例来说明本发明的数据调用方法。本实施例中用户想要查询自己所在所管理用户列表,例如只想知道值班室的id,不需要返回值班室的其他信息。图2是本发明又一个实施例的一种数据调用方法的实现类图,图3是本发明又一个实施例的一种数据调用方法的时序图,以下结合图2和图3进行说明。

参见图2,对类图中的主要元素和元素之间的关系说明如下:

baserest:是所有请求类的父类

将公共方法都抽象到此类中,主要包括webservice.xml解析,查询返回值与配置使用算法将需要返回的字段比对出来形成用户所需要的数据进行返回等,并在此类中对webservice.xml的配置文件使用了缓存cache。

dutybaserest:针对不同模块方向定义的父类,

在此类中主要设duty_webservice.xml配置文件及缓存key名称,此类中 继承了baserest类,重写了getwebservicefilename()、getcachename()方法。

orgainzationrest此类则是具体的请求类,

此类继承了模块类dutybaserest,在此类中则是写入了具体的实现方法提供给调用则所需要的数据。

rootxmlvo、bodyxmlvo、reqfieldvo:封装webservice.xml封装数据类。

xmlutil类:是解析webservice.xml工具类

将webservice.xml读取后封装到rootxmlvo、bodyxmlvo、reqfieldvo中。

organizationserviceimpl:请求接口的后台查询类

该类中getorgsyaccount()方法则为根据登录账号获取用户数据(本实施例中则是获取用户所在所管理的值班室)的实现查询方法。

参见图3,用户(即调用者)想获取自己所在所管理的用户列表数据所以用户向webservice服务发送调用请求,以下对该数据调用方法的时序图种的调用关系说明如下:

步骤1:根据url请求调用getdutyorgbyaccount()方法

调用者发送url请求,当webservice服务中的orgainzationrest接收到调用者发送的url请求时,根据url请求调用orgainzationrest类的getdutyorgbyaccount()方法,用来获取appname,longinaccount,versionno,keyid,callbackparam参数。

步骤2:初始化属性inituniquemethod(),确定配置文件webservice.xml标识。

具体的,getdutyorgbyaccount()方法中首先会调用父类的inituniquemethod(),此方法会传入相应的参数例如,versionno,keyed,callbackparam这些参数的组合是webservice.xml中对应方法的唯一键值,通 过此键值可以找到此方法想返回的相应字段值及检查参数是否合法等。

步骤3:设置帐号和应用名

getdutyorgbyaccount()方法接着将用户的请求参数封装到dutyrequestvo对象中,setloginaccount(account),setrestappname(appname)

步骤4:检查参数是否合法

getdutyorgbyaccount()对请求的参数进行参数检查,若符合要求则进行第5步,否则通知客户查询的参数不合法,请求确认调用接口参数。

步骤5:读取webservice自定义配置文件(即webservice.xml)

具体的,可以通过getcacherootxmlvo()方法读取webservice.xml自定义配置文件。

步骤6:发送数据查询请求给数据库

这里主要是根据用户传入参数查询后台获取用户所需的数据。具体的可以通过getorgsyaccount(account,activefileflag)方法根据用户请求中的登录账号获取所在所管理的值班室。

步骤7:返回初始查询结果

这里的初始查询结果是指可能包含了用户所查询数据的全部字段的结果,例如,数据库中值班室表中的一条记录包括10个字段,有人员、性别、年龄等等,而没有利用配置文件筛选之前,数据库返回的结果是登录账号有权访问的包含10个字段的初始查询结果。

步骤8:确定返回格式

这里,根据调用者url请求中的信息解析得到返回格式,具体的,可以通过respsuccesjson(reqvo,retobj)方法确定数据返回的字符串格式。

步骤9:确定返回的字段

根据步骤5中读取到的配置文件中的用户自定义的返回字段,在初步查询结果中进行筛选,具体的,orgainzationrest可以调用父类的respsuccessjson()方法,此方法主要是对请求的参数读取和查询结果的解析。例如,通过reqconverter(reqvo)方法,读取请求参数。

步骤10:确定返回字段对应的数据

即对初步查询结果进行的解析,具体的首先获取webservice.xml对 respconverter()方法返回的字段配置,使用第2步中的key来获取对应的数据,根据hibernate的工具体并使用java反射机制进行算法比对,找到用户所需要的属性(字段),得到最终调用结果。

步骤11:将最终调用结果发送给调用者

具体的,找到最终调用结果后可以将最终调用结果以json字符串的形式返回给调用者,这样就可以减少手机端代码调用时返回无用的数据,节省数据流量。

图4是本发明再一个实施例的一种数据调用装置的框图,参见图4,该数据调用装置40包括:

请求接收单元401,用于接收用户发送的webservice调用请求;

配置文件选择单元402,用于对调用请求进行解析得到配置文件标识参数的值,利用配置文件标识参数的值从保存的多个配置文件中选择对应的配置文件,配置文件中有用户自定义的返回字段;

这里,可通过webservice.xml自定义配置文件来接收用户自定义的返回字段。

数据筛选单元403,用于根据调用请求中的请求参数以及选中的配置文件中用户自定义的返回字段,在数据库中进行数据筛选,筛选出返回字段对应的数据;

结果返回单元404,用于将包含返回字段对应的数据的调用结果发送给用户。

本实施例中,配置文件标识参数为webservice的方法版本号,配置文件以方法版本号为唯一标识,不同配置文件中用户自定义的返回字段不同。

本实施例中,该装置40还包括:参数检查单元,用于检查调用请求传入的请求参数是否合法,是则,根据调用请求传入的请求参数向数据库发送数据查询请求,否则,向用户发送请求参数不合法的通知,使得用户重新确认请求参数。

本实施例中,该装置40还包括:配置文件生成单元,用于利用预先设计好格式的可扩展标记语言xml配置文件接收用户自定义的需要返回的字段 后,生成对应的xml配置文件并保存。

本实施例中,结果返回单元404具体用于根据调用请求中的返回格式参数,将包含返回字段对应的数据的调用结果转换为xml格式的字符串或json格式的字符串发送给用户。

本实施例中的数据调用装置的工作过程是与前述数据调用方法的实现步骤相对应的,因而本实施例中对该数据调用装置的工作过程没有描述的部分可以参见本发明前述实施例的相关说明,这里不再赘述。

综上所述,本发明的这种数据调用方法和装置,通过预先设置配置文件,配置文件中记录用户自定义的返回字段,从而在接收到用户的调用请求时,找到对应的配置文件,并利用该配置文件对调用结果进行筛选,将用户需要的字段筛选出来作为最终的返回结果发送给用户,从而避免了现有技术中对运行在不同终端中的客户端都返回同样的数据内容。由于配置文件中记录有每个用户自定义的自己想要返回的数据内容,对于当前请求用户,只需要利用配置文件将该用户想要的数据筛选出来并返回,不需要返回全部的数据,节省了返回字节和数据流量,提升了用户体验。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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