CN114637497B - 一种接口序列化响应字段的方法及系统 - Google Patents

一种接口序列化响应字段的方法及系统 Download PDF

Info

Publication number
CN114637497B
CN114637497B CN202210540925.XA CN202210540925A CN114637497B CN 114637497 B CN114637497 B CN 114637497B CN 202210540925 A CN202210540925 A CN 202210540925A CN 114637497 B CN114637497 B CN 114637497B
Authority
CN
China
Prior art keywords
class
field
response field
response
module
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.)
Active
Application number
CN202210540925.XA
Other languages
English (en)
Other versions
CN114637497A (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.)
Foshan Zhongtaolian Supply Chain Service Co Ltd
Tibet Zhongtaolian Supply Chain Service Co Ltd
Original Assignee
Foshan Zhongtaolian Supply Chain Service Co Ltd
Tibet Zhongtaolian Supply Chain Service 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 Foshan Zhongtaolian Supply Chain Service Co Ltd, Tibet Zhongtaolian Supply Chain Service Co Ltd filed Critical Foshan Zhongtaolian Supply Chain Service Co Ltd
Priority to CN202210540925.XA priority Critical patent/CN114637497B/zh
Publication of CN114637497A publication Critical patent/CN114637497A/zh
Application granted granted Critical
Publication of CN114637497B publication Critical patent/CN114637497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据处理技术领域,公开了一种接口序列化响应字段的方法及系统,所述方法包括以下步骤:请求方发起信息获取请求;解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;去除请求方的类名称,将剩下的类名称组合形成响应字段;将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方。能够减少代码的数量以及提高代码的整洁度。

Description

一种接口序列化响应字段的方法及系统
技术领域
本发明涉及数据处理技术领域,特别是一种接口序列化响应字段的方法及系统。
背景技术
在信息交互迅猛的时代,人们的信息交互是在所难免的,例如在网上的电子交易中,通常卖或买家在出售或者买入某件商品后,系统会将账单的信息返回。其中账单会显示支付方与收付方的信息。但是在支付方的角度来看,支付方去看账单的时候就不需要看支付方的信息,因为支付方是他自己了,所以接口返回给客户端的信息就不需要包括支付方的信息了。因此需要将请求方响应的信息去除掉。
在现有的技术中使用一个只含有请求方的Class来接收这个查询结果,或者查询出来后,把请求方的信息设置为空,那系列化的时候,就不会把请求方的信息也返回给客户端了。但是该方法需要在每一个商品中设置定义Class,非常繁琐,而且定义后,代码的整体会非常臃肿,影响了后期代码运行与维护工作。
发明内容
针对上述缺陷,本发明的目的在于提出一种接口序列化响应字段的方法及系统,以提高打码编写的整洁度,方便后期代码运行与维护工作。
为达此目的,本发明采用以下技术方案:一种接口序列化响应字段的方法,包括以下步骤:
请求方发起信息获取请求;
解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
去除请求方的类名称,将剩下的类名称组合形成响应字段;
将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方。
优选的,使用链式调用模式将剩下的类名称组合形成响应字段,其中所述链式调用模式的格式为:实体类.builder().类名称1().类名称2().……类名称n(),n为剩下的类名称的数量,builder表示使用builder设计模式预先设置低获取信息内容的获取方法。
优选的,把实体类里面的对应响应字段的信息内容进行序列化的具体步骤如下:用内存接口根据所述响应字段获取的字段模板,将响应字段以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体类里面的对应响应字段的信息内容进行序列化。
一种接口序列化响应字段的系统,包括响应模块、获取模块、组合模块以及序列化模块;
响应模块用于接收请求方发起信息获取请求;
所述获取模块用于解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
所述组合模块用于去除请求方的类名称,将剩下的类名称组合形成响应字段;
序列化模块用于将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方。
优选的,所述组合模块还包括链式代码生产模块;
所述链式代码生产模块用于以链式调用模式生成所述响应字段。
优选的,所述序列化模块包括数据反馈模块,所述数据反馈模块用于用内存接口根据所述响应字段获取的字段模板,将响应字段以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体类里面的对应响应字段的信息内容进行序列化。
上述技术方案中的一个技术方案具有如下优点或有益效果:通过所述链式调用模式能够灵活设置代码,而且能够让代码更加简洁,提高代码的生成效率,还能代码维护成本更低。
附图说明
图1是本发明的一个实施例的一种接口序列化响应字段的方法的流程图。
图2是本发明的一个实施例的一种接口序列化响应字段的系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
如图1所示,一种接口序列化响应字段的方法,包括以下步骤:
请求方发起信息获取请求;
解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
去除请求方的类名称,将剩下的类名称组合形成响应字段;
将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方。
在本发明中,首先会获取信息内容是谁在请求。随后就会将请求方对应的类名称进行剔除。使其在序列化时,因响应字段缺少相应请求方的类名称的字段模板而无法获取相应的字段信息。因此无需在每一个商品中设置相应的Class来限制字段信息的获取。减少代码的数量以及提高代码的整洁度。下面以一个实施例作为解释:
例如在支付交易中,支付方需要获取账单的信息内容,此时,支付方就会发送一个账单的信息获取请求,然后系统会对这个账单的信息获取请求进行解析,获取账单的信息获取请求的信息内容,如:支付方的信息内容、收款方的信息内容以及账单金额的信息内容,上述支付方的信息内容、收款方的信息内容以及账单金额的信息内容对应会存在对应的实体类payer()、payee()以及amount()。因为请求方为支付方,所以只需要将上述payee()以及amount()生成为所述响应字段即可。
每一个信息内容都存在相应数据库的表内,该数据库的表名称与实体类相互关联,在内存接口解析所述响应字段后会得到相应的实体类,通过所述实体类既可以找到信息内容所对应的数据库,然后对数据进行序列化发送给请求方,此时请求方(支付方)就不会得到自己的内容信息。
优选的,使用链式调用模式将剩下的类名称组合形成响应字段,其中所述链式调用模式的格式为:实体类.builder().类名称1().类名称2().……类名称n(),n为剩下的类名称的数量,builder表示使用builder设计模式预先设置低获取信息内容的获取方法。
在一个实施例中:支付信息包括了payer(支付方),payee(收款方), amount(账单)等三个实体类;在PayRequestEntity实体类(支付方请求)里面根据以上3字段名称使用builder设计模式编写3个与之相对应的链式调用模式payee()、payer()、amount(),每个链式方法的调用就可以产生字符串的形式对应的实体对应的字段名称,一系列的链式方法的调用形成了字段名称的集合,也就是实体类序列化所需要的所有字段。当获取到当前请求方为支付方时,根据链式调用模式生产支付方的响应字段:即此时类名称1()为payee(),类名称2()为amount(),那么合成后的响应字段为:实体类.builder().payee().amount(),其中类名称n()是可以直接使用所述实体类的名称作为调用的基础。其中builder设计模式为java语言中一个模式,通过builder设计模式可以提前设置方法,然后直接通过对象来调用该方法。在本实施例中,通过builder设计模式可以是提前设置库中不同内容信息的获取方法,而对象则为对应的类名称,通过类名称可以获取库中相关实体类的信息内容,如在响应字段:实体类.builder().payee().amount()中,可以从支付的信息表中获取在这次请求中谁是收款方,支付的金额是多少等等。而具体设置的内容信息获取方法是与在库中的检索方式,该获取方法不同使用者可以使用不同的方式来实现,不是本申请所保护的范围,故在此不做过多解释。
所述链式调用模式能够灵活设置代码,而且能够让代码更加简洁,提高代码的生成效率,还能代码维护成本更低。
另外值得一提的是,由于在一些简单的使用场所中,信息内容获取的发起方是确定的,而且内容相对单一,可以提前使用本方法提前制作响应字段。在用户请求信息内容时直接在内存接口处调用提前制作的响应字段即可。能够提高响应的速度。在编译时检查使用本申请中的链式调用模式能够更加便捷地进行代码检查。因为在现有技术中是指定字符串的形式去指定序列化字段的话,是没有编译时检查功能的,但本发明中所使用的链式调用模式是可以使用代码编译器对方法名进行验证的,这是利用了编译器本身在编译代码时候的一个特性,在本发明的技术中编译代码时是会实时对方法进行调用,并会检查方法是否存在,如果方法不存在,编译就会报错提醒没有这个方法。实现了更加便捷的代码检测。
以上述例如支付信息案例来举例,由于支付信息中内容较为单一,可以提前制作支付方的响应字段,而在编写类名称1时,将paye输入带代码中后加入(),此时代码编译器就会默认已经将类名称1编写完成,此时就会在检查信息内容中是否存在有paye()这一类名称,由于信息内容中是存在payee(),而没有paye()的,此时代码编译器会显示出错。实现了编译过程的实时检测。能够更加便捷地进行代码检查。
优选的,把实体类里面的对应响应字段的信息内容进行序列化的具体步骤如下:用内存接口根据所述响应字段获取的字段模板,将响应字段以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体类里面的对应响应字段的信息内容进行序列化。
在一个实施例中,使用了全局拦截器,在内存接口数据返回之前,通过注解指定序列化的参数,以此来达到只序列化指定的序列化响应字段的效果。值得一提的是,所述字段模板是提前设置的,为序列化后,字体的格式模板。
例如在使用上述代码实体类.builder().payee().amount()后,已知道所需要获取的收款方信息以及支付金额等信息,当数据进行返回时,通过全局拦截器在将上述进行拦截,并通过注解指定哪一些参数是需要进行序列化的,即在本申请中对支付方payee()以及账单amount()两个类名称进行注解,并在规定的格式模板中序列化的展示,例如在支付方的字段模板为:“支付方:XXXXX”,其中“XXXXX”为返回的支付方信息。
如图2所示,一种接口序列化响应字段的系统,包括响应模块、获取模块、组合模块以及序列化模块;
响应模块用于接收请求方发起信息获取请求;
所述获取模块用于解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
所述组合模块用于去除请求方的类名称,将剩下的类名称组合形成响应字段;
序列化模块用于将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方。
优选的,所述组合模块还包括链式代码生产模块;
所述链式代码生产模块用于以链式调用模式生成所述响应字段。
优选的,所述序列化模块包括数据反馈模块,所述数据反馈模块用于调用内存接口根据所述响应字段中的字段模板,以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体里面的对应响应字段进行序列化。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (2)

1.一种接口序列化响应字段的方法,其特征在于,包括以下步骤:
请求方发起信息获取请求;
解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
去除请求方的类名称,将剩下的类名称组合形成响应字段;
将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方;
使用链式调用模式将剩下的类名称组合形成响应字段,其中所述链式调用模式的格式为:实体类.builder().类名称1().类名称2().……类名称n(),n为剩下的类名称的数量,builder表示使用builder设计模式预先设置低获取信息内容的获取方法;
把实体类里面的对应响应字段的信息内容进行序列化的具体步骤如下:用内存接口根据所述响应字段获取的字段模板,将响应字段以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体类里面的对应响应字段的信息内容进行序列化。
2.一种接口序列化响应字段的系统,其特征在于,包括响应模块、获取模块、组合模块以及序列化模块;
响应模块用于接收请求方发起信息获取请求;
所述获取模块用于解析所述信息获取请求的信息内容,获取信息内容中每一个内容所在实体类的类名称;
所述组合模块用于去除请求方的类名称,将剩下的类名称组合形成响应字段;
序列化模块用于将所述响应字段发送到内存接口处,解析所述响应字段,把实体类里面的对应响应字段的信息内容进行序列化,并发送给请求方;
所述组合模块还包括链式代码生产模块;
所述链式代码生产模块用于以链式调用模式生成所述响应字段;
所述序列化模块包括数据反馈模块,所述数据反馈模块用于用内存接口根据所述响应字段获取的字段模板,将响应字段以参数的形式在内存接口序列化的时候传给Jackson框架,Jackson框架按字段模板把实体类里面的对应响应字段的信息内容进行序列化。
CN202210540925.XA 2022-05-19 2022-05-19 一种接口序列化响应字段的方法及系统 Active CN114637497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210540925.XA CN114637497B (zh) 2022-05-19 2022-05-19 一种接口序列化响应字段的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210540925.XA CN114637497B (zh) 2022-05-19 2022-05-19 一种接口序列化响应字段的方法及系统

Publications (2)

Publication Number Publication Date
CN114637497A CN114637497A (zh) 2022-06-17
CN114637497B true CN114637497B (zh) 2022-09-16

Family

ID=81952817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210540925.XA Active CN114637497B (zh) 2022-05-19 2022-05-19 一种接口序列化响应字段的方法及系统

Country Status (1)

Country Link
CN (1) CN114637497B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104321796A (zh) * 2012-03-22 2015-01-28 泰科消防及安全有限公司 使用智能设备的顾客辅助请求系统
CN110990011A (zh) * 2019-12-06 2020-04-10 重庆邮电大学 一种自动化接口的数据请求方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170139681A1 (en) * 2015-11-13 2017-05-18 International Business Machines Corporation Class splitting in object-oriented environments
US10140119B2 (en) * 2016-03-17 2018-11-27 Oracle International Corporation Modular serialization
CN107798098A (zh) * 2017-10-27 2018-03-13 链家网(北京)科技有限公司 一种实现动态接口字段的方法及装置
CN110554857B (zh) * 2018-05-30 2021-06-22 马上消费金融股份有限公司 JavaBean生成方法、装置、系统及可读存储介质
CN109408057B (zh) * 2018-10-23 2022-03-04 网易传媒科技(北京)有限公司 自动生成代码的方法、装置、介质和计算设备
US10908927B1 (en) * 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
CN112000313A (zh) * 2020-08-03 2020-11-27 北京达佳互联信息技术有限公司 请求响应方法、装置、设备及存储介质
CN113918158A (zh) * 2021-09-16 2022-01-11 浪潮软件科技有限公司 字典自动序列化成业务值的方法、装置及计算机可读介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104321796A (zh) * 2012-03-22 2015-01-28 泰科消防及安全有限公司 使用智能设备的顾客辅助请求系统
CN110990011A (zh) * 2019-12-06 2020-04-10 重庆邮电大学 一种自动化接口的数据请求方法

Also Published As

Publication number Publication date
CN114637497A (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
CA2684822C (en) Data transformation based on a technical design document
US8200780B2 (en) Multiple bindings in web service data connection
US7353063B2 (en) Generating and communicating web content from within an implantable medical device
RU2409858C2 (ru) Система управления подключениями на основе обмена сообщениями
US8396797B2 (en) Data source independent interface for an electronic bill presentment and payment system
US20070011090A1 (en) Electronic exchange and settlement system for cash letter adjustments for financial institutions
US6408303B1 (en) System and method for automated building of a trading partner profile
US20040010419A1 (en) Method and apparatus for facilitating acquistion of prospective payoff information on an existing loan account
JP2004527041A (ja) 携帯用計算デバイスへの無線通信媒体を介するコンテンツ送達のためのシステムおよび方法
US11675807B1 (en) Database interface system
EP1483710A2 (en) Method, software application and system for incorporating benchmark data into a business software application
US20170010842A1 (en) Document output processing
CA3193241A1 (en) System and method for data provider tracking and monetization
JP7474270B2 (ja) Dicomオブジェクトのためのユニバーサルウェブサービス
JP2018116602A (ja) 証憑処理システム及び証憑処理方法
US6996574B2 (en) System and method for accessing database design information
US7640261B2 (en) Apparatus and method for processing data corresponding to multiple COBOL data record schemas
CN114637497B (zh) 一种接口序列化响应字段的方法及系统
EP1748366A1 (en) A data processing system and method
JP4295288B2 (ja) 帳票作成装置、帳票作成方法及び帳票作成プログラム
CN114281331A (zh) 一种用于访问数据库的前后端代码文件的生成方法及装置
EP1452980A2 (en) System and method for generating a request for information about selected objects
JP2009230450A (ja) 文書属性情報登録装置及びプログラム
JP3725886B2 (ja) キャッシュマネージメントシステム
CA2571092C (en) Document output processing using content data and form data

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
GR01 Patent grant
GR01 Patent grant