CN109167724A - 一种api网关中实现数据预处理的方法 - Google Patents

一种api网关中实现数据预处理的方法 Download PDF

Info

Publication number
CN109167724A
CN109167724A CN201811050409.9A CN201811050409A CN109167724A CN 109167724 A CN109167724 A CN 109167724A CN 201811050409 A CN201811050409 A CN 201811050409A CN 109167724 A CN109167724 A CN 109167724A
Authority
CN
China
Prior art keywords
data
api gateway
message
micro services
field
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
CN201811050409.9A
Other languages
English (en)
Other versions
CN109167724B (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.)
Sichuan Hongwei Technology Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201811050409.9A priority Critical patent/CN109167724B/zh
Publication of CN109167724A publication Critical patent/CN109167724A/zh
Application granted granted Critical
Publication of CN109167724B publication Critical patent/CN109167724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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

Abstract

本发明公开了一种API网关中实现数据预处理的方法,含步骤:A.API网关从HTTP请求的报文中提取报文数据;B.对报文数据进行解码和反序列化;C.根据报文数据的类型将报文数据进行格式化处理将其转换为对应的格式;D.使用自定义词典对步骤C格式化后的数据进行校正,纠正数据中的错误;E.约定优于配置的方式在经校正后的数据中补齐缺失的数据;F.对数据进行比较并删除重复的数据;G.对数据进行合并或拆分处理;H.重新对数据进行序列化以便通过网络进行传输。本发明的方法通过对数据进行统一的预处理,使得未经过统一改造的微服务也能直接接收数据,有助于简化后端微服务的业务逻辑,还可以简化前端开发的业务逻辑。

Description

一种API网关中实现数据预处理的方法
技术领域
本发明涉及计算机软件的分布式系统技术领域,特别涉及一种API网关中实现数据预处理的方法。
背景技术
随着移动互联网的不断深入,越来越多的公司和企业逐渐开始面向互联网,并且把面向客户的服务和业务也迁移到线上。在开发这些线上业务时,随着客户数量的不断增多,业务平台的架构也在不断地变化演进。从早期的单体应用架构逐渐转变为微服务架构,集群和分布式也成为了标配的技术。
在构建微服务架构的基础平台的过程中,API网关是必不可少的核心组件之一。API网关为一组微服务提供统一的接口,以便客户端无需知道微服务内部的所有细节。由于API网关是终端用户访问的统一入口,对于终端APP而言,如果API网关的后端有多种微服务,那么就需要针对每一种微服务采取相应的访问方式,且每一种微服务其接收的数据格式或标准不同,这样就造成了,后端微服务的种类越多,终端APP的业务逻辑和开发就越复杂,开发的难度也随之增大,APP软件的质量也随之下降。
目前传统的解决方案是对各种微服务进行改造,采用统一的服务规格,如规定各种微服务均采用同一种标准的数据格式,从而简化终端APP的业务逻辑。但是这种方法存在着改造已有微服务的难度较大,且微服务种类多原本就是目前IT业界的原生态,因此,采取对所有微服务进行统一数据格式标准的改造方法并不能很好地适应实际的情况,解决目前实际中遇到的问题。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种API网关中实现数据预处理的方法,该方法适用于采用了集群和/或分布式设计的系统,通过对数据进行统一的预处理,使得未经过统一改造的微服务也能直接接收数据,有助于简化后端微服务的业务逻辑,还可以简化前端开发的业务逻辑,有利于大型微服务架构的简化和功能分布,进一步提升了系统效率及系统整体的可靠性和稳定性。
为了达到上述的技术效果,本发明采取以下技术方案:
一种API网关中实现数据预处理的方法,包括以下步骤:
A.API网关从HTTP请求的报文中提取报文数据;
B.API网关对报文数据进行解码和反序列化;
C.API网关根据报文数据的类型将报文数据进行格式化处理将其转换为对应的格式;
D.API网关使用自定义词典对步骤C格式化后的数据进行校正,纠正数据中的错误,所述自定义词典是根据业务长期运行所产生的知识库形成的词典数据;
E.API网关按约定优于配置的方式在经校正后的数据中补齐缺失的数据;
F.API网关对数据进行比较并删除重复的数据;
G.API网关对数据进行合并或拆分处理;
H.API网关重新对数据进行序列化以便通过网络进行传输。
进一步地,所述步骤B中的解码及反序列化分别是与终端APP对数据的编码及序列化进行了事先约定且配对使用的,在实际中,来自终端APP发起的HTTP请求,其报文通常是进行了编码和序列化处理过的,故API网关需要对获得的报文数据进行解码和反序列化工作,解码与终端APP对数据的编码是事先约定且配对使用的,但实施方法相反,解码与终端APP对数据的编码是事先约定且配对使用的,但实施方法相反。
进一步地,所述自定义词典是存放于内存中的哈希型数据结构,也可以利用内存数据库来实现,且自定义词典内的数据可以根据实际的需要随时扩充。
进一步地,所述步骤F中删除重复的数据具体为过滤唯一值或删除重复值。
进一步地,所述步骤G具体为API网关根据后端微服务端点的需求对数据进行合并或拆分处理,其中,拆分处理包括:将包含全名的列拆分为姓字段和名字段、将包含地址的字段拆分为单独的省、市、县区、街道、邮政编码字段,合并处理包括将分开的姓字段和名字段合并为包含全名的单独列,将单独的省、市、县区、街道、邮政编码字段合并为单独一列的地址。
本发明与现有技术相比,具有以下的有益效果:
本发明的API网关中实现数据预处理的方法,通过对数据进行统一的预处理,有助于简化后端微服务的业务逻辑,还可以简化前端开发的业务逻辑,有利于大型微服务架构的简化和功能分布,进一步提升了系统效率,提升了系统整体的可靠性和稳定性。
附图说明
图1是本发明的API网关中实现数据预处理的方法的流程示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
如图1所示,一种API网关中实现数据预处理的方法,该方法可以应用于微服务架构中,可以应用于分布式计算平台、云计算平台等数据中心,该方法主要包括以下步骤:
步骤101,API网关从HTTP请求的报文中提取数据。
具体的,HTTP请求是来自终端APP的请求,终端APP为个人电脑、智能手机、平板电脑等终端设备上安装的软件,上述终端APP通过互联网向API网关发起访问请求。
具体的,本实施例中API网关是指微服务架构中的API网关服务,它是所有微服务访问的统一入口。
其中提取数据具体是指API网关在获取HTTP请求后,对HTTP请求的数据包进行解析,获得报文数据。
步骤102,API网关对数据进行解码和反序列化。
实际应用中,来自终端APP发起的HTTP请求,其报文通常是进行了编码和序列化处理过的,故API网关需要对上一步骤获得的报文数据进行解码和反序列化工作。
其中,解码与终端APP对数据的编码是事先约定且配对使用的,但实施方法与终端APP对数据的编码方法相反。同理,反序列化与终端APP对数据的序列化也是事先约定且配对使用的,但实施方法与终端APP对数据的序列化方法相反。
步骤103,API网关对数据进行格式化。
API网关需要根据后端微服务对数据格式的要求对数据进行格式化。不同的后端微服务对数据格式的要求有所不同。比如对日期的表示,可以是“XXXX年XX月XX日”,也可以是“XXXX-XX-XX”。又比如对货币的表示方式,不同的微服务其表示方法不同,这些均需要通过API网关根据后端微服务对数据格式的要求对数据进行相应的格式化,以满足后端微服务端点的需要。
步骤104,API网关纠正数据中的错误。
本实施例中,API网关具体是使用自定义词典将上一步骤格式化后的数据进行校正,纠正数据中的错误,例如拼写错误、语法错误,使用自定义词典向拼写检查器添加单词。
具体的,本实施例中的自定义词典是根据业务长期运行所产生的知识库形成的词典数据,且这个数据可以根据实际的需要随时扩充。作为优选,自定义词典可以是存放于内存中的哈希型数据结构,也可以利用内存数据库来实现。
步骤105,API网关按约定优于配置的方式补齐缺失的数据。
API网关根据事先与后端微服务端点约定的规则,并以此为依据补齐数据中缺失的数据。
步骤106,API网关比较并删除重复的数据记录。
API网关对数据进行去重操作,具体实施时可以是过滤唯一值,也可以是删除重复值。
步骤107,API网关对数据进行合并或拆分。
根据后端微服务端点的需求,有些字段可以进行合并操作,合并成单独的一列。有些字段则需要进行拆分处理,拆分成独立的字段。比如可以将包含全名的列拆分为姓字段和名字段,包含地址的字段拆分为单独的省、市、县区、街道、邮政编码等字段。反过来即是合并处理,即将分开的姓字段和名字段合并为包含全名的单独列,将单独的省、市、县区、街道、邮政编码字段合并为单独一列的地址,
步骤108,API网关重新对数据进行序列化以便传输。
API网关最后对数据进行序列化,序列化后的数据即可通过网络进行传输。
由上可知,本发明的API网关中实现数据预处理的方法,通过对数据进行统一的预处理,有助于简化后端微服务的业务逻辑,还可以简化前端开发的业务逻辑,有利于大型微服务架构的简化和功能分布,进一步提升了系统效率,提升了系统整体的可靠性和稳定性。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (5)

1.一种API网关中实现数据预处理的方法,其特征在于,包括以下步骤:
A.API网关从HTTP请求的报文中提取报文数据;
B.API网关对报文数据进行解码和反序列化;
C.API网关根据报文数据的类型将报文数据进行格式化处理将其转换为对应的格式;
D.API网关使用自定义词典对步骤C格式化后的数据进行校正,纠正数据中的错误,所述自定义词典是根据业务长期运行所产生的知识库形成的词典数据;
E.API网关按约定优于配置的方式在经校正后的数据中补齐缺失的数据;
F.API网关对数据进行比较并删除重复的数据;
G.API网关对数据进行合并或拆分处理;
H.API网关重新对数据进行序列化以便通过网络进行传输。
2.根据权利要求1所述的一种API网关中实现数据预处理的方法,其特征在于,所述步骤B中的解码及反序列化分别是与终端APP对数据的编码及序列化进行了事先约定且配对使用的。
3.根据权利要求1所述的一种API网关中实现数据预处理的方法,其特征在于,所述自定义词典是存放于内存中的哈希型数据结构。
4.根据权利要求1所述的一种API网关中实现数据预处理的方法,其特征在于,所述步骤F中删除重复的数据具体为过滤唯一值或删除重复值。
5.根据权利要求1所述的一种API网关中实现数据预处理的方法,其特征在于,所述步骤G具体为API网关根据后端微服务端点的需求对数据进行合并或拆分处理,其中,拆分处理包括:将包含全名的列拆分为姓字段和名字段、将包含地址的字段拆分为单独的省、市、县区、街道、邮政编码字段,合并处理包括将分开的姓字段和名字段合并为包含全名的单独列,将单独的省、市、县区、街道、邮政编码字段合并为单独一列的地址。
CN201811050409.9A 2018-09-10 2018-09-10 一种api网关中实现数据预处理的方法 Active CN109167724B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811050409.9A CN109167724B (zh) 2018-09-10 2018-09-10 一种api网关中实现数据预处理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811050409.9A CN109167724B (zh) 2018-09-10 2018-09-10 一种api网关中实现数据预处理的方法

Publications (2)

Publication Number Publication Date
CN109167724A true CN109167724A (zh) 2019-01-08
CN109167724B CN109167724B (zh) 2021-09-17

Family

ID=64894542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811050409.9A Active CN109167724B (zh) 2018-09-10 2018-09-10 一种api网关中实现数据预处理的方法

Country Status (1)

Country Link
CN (1) CN109167724B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110753127A (zh) * 2019-10-29 2020-02-04 浪潮云信息技术有限公司 基于Kong的API网关实现请求参数转换的方法
CN113032089A (zh) * 2021-01-18 2021-06-25 中电普信(北京)科技发展有限公司 一种基于api网关的分布式仿真服务构建方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217510A (zh) * 2008-01-04 2008-07-09 李卓桓 一种集成的信息交互系统及其方法
CN102571720A (zh) * 2010-12-27 2012-07-11 中国移动通信集团辽宁有限公司 一种异构信息内容处理方法及装置
CN104468785A (zh) * 2014-12-08 2015-03-25 上海斐讯数据通信技术有限公司 电子设备、服务器设备、数据请求提交方法及处理方法
US20180075115A1 (en) * 2016-09-15 2018-03-15 Oracle International Corporation Techniques for facilitating the joining of datasets
US20180122237A1 (en) * 2016-10-31 2018-05-03 Veniam, Inc. Systems and methods for tracking and fault detection, for example among autonomous vehicles, in a network of moving things
CN108076090A (zh) * 2016-11-11 2018-05-25 华为技术有限公司 数据处理方法和存储管理系统
CN108228664A (zh) * 2016-12-22 2018-06-29 中国移动通信集团上海有限公司 非结构化数据处理方法及装置
CN108231136A (zh) * 2016-12-09 2018-06-29 长沙博为软件技术股份有限公司 一种医疗临床数据抓取预处理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217510A (zh) * 2008-01-04 2008-07-09 李卓桓 一种集成的信息交互系统及其方法
CN102571720A (zh) * 2010-12-27 2012-07-11 中国移动通信集团辽宁有限公司 一种异构信息内容处理方法及装置
CN104468785A (zh) * 2014-12-08 2015-03-25 上海斐讯数据通信技术有限公司 电子设备、服务器设备、数据请求提交方法及处理方法
US20180075115A1 (en) * 2016-09-15 2018-03-15 Oracle International Corporation Techniques for facilitating the joining of datasets
US20180122237A1 (en) * 2016-10-31 2018-05-03 Veniam, Inc. Systems and methods for tracking and fault detection, for example among autonomous vehicles, in a network of moving things
CN108076090A (zh) * 2016-11-11 2018-05-25 华为技术有限公司 数据处理方法和存储管理系统
CN108231136A (zh) * 2016-12-09 2018-06-29 长沙博为软件技术股份有限公司 一种医疗临床数据抓取预处理方法
CN108228664A (zh) * 2016-12-22 2018-06-29 中国移动通信集团上海有限公司 非结构化数据处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王瑜 等: "面向服务管控的API网关设计与实现", 《计算机科学》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110753127A (zh) * 2019-10-29 2020-02-04 浪潮云信息技术有限公司 基于Kong的API网关实现请求参数转换的方法
CN113032089A (zh) * 2021-01-18 2021-06-25 中电普信(北京)科技发展有限公司 一种基于api网关的分布式仿真服务构建方法
CN113032089B (zh) * 2021-01-18 2023-02-28 中电普信(北京)科技发展有限公司 一种基于api网关的分布式仿真服务构建方法

Also Published As

Publication number Publication date
CN109167724B (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
CN102880649B (zh) 一种个性化信息处理方法和系统
US20140280318A1 (en) Method and System for Generating a Geocode Trie and Facilitating Reverse Geocode Lookups
CN107256206B (zh) 字符流格式转换的方法和装置
CN106599104A (zh) 一种基于redis集群的海量数据关联方法
CN108846753B (zh) 用于处理数据的方法和装置
CN108897874B (zh) 用于处理数据的方法和装置
CN111325022A (zh) 识别层级地址的方法和装置
CN110851511A (zh) 数据同步的方法及装置
CN109167724A (zh) 一种api网关中实现数据预处理的方法
CN113760948A (zh) 一种数据查询的方法及装置
CN111339743B (zh) 一种账号生成的方法和装置
CN115510249A (zh) 一种知识图谱的构建方法及装置、电子设备、存储介质
CN105912723A (zh) 一种自定义字段的存储方法
CN116562255B (zh) 表单信息生成方法、装置、电子设备和计算机可读介质
CN113190558A (zh) 一种数据加工方法和系统
CN110895591A (zh) 一种定位自提点的方法和装置
Neun et al. Web service approaches for providing enriched data structures to generalisation operators
CN111814020A (zh) 一种数据的获取方法和装置
US20140280244A1 (en) Locale-based sorting on mobile devices
US20230065823A1 (en) Updating records in a real-time storage system
CN110032574A (zh) Sql语句的处理方法及装置
CN110781238B (zh) 基于Redis、Hbase结合的客户视图缓存方法和装置
CN110705935B (zh) 一种物流单据的处理方法和装置
CN113254457A (zh) 一种对账方法、系统及计算机可读存储介质
CN106649386A (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: 20200116

Address after: 610000 Chengdu City, Sichuan Province, China (Sichuan) Free Trade Pilot Area, No. 199 Tianfu Fourth Street, Chengdu High-tech Zone, 33 floors

Applicant after: Panovasic Co., Ltd.

Address before: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton

Applicant before: Sichuan Changhong Electrical Appliance Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant