CN111010417A - 基于kong的数据格式转换方法、响应系统及方法 - Google Patents

基于kong的数据格式转换方法、响应系统及方法 Download PDF

Info

Publication number
CN111010417A
CN111010417A CN201910986285.3A CN201910986285A CN111010417A CN 111010417 A CN111010417 A CN 111010417A CN 201910986285 A CN201910986285 A CN 201910986285A CN 111010417 A CN111010417 A CN 111010417A
Authority
CN
China
Prior art keywords
response
kong
data
http request
format conversion
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
CN201910986285.3A
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201910986285.3A priority Critical patent/CN111010417A/zh
Publication of CN111010417A publication Critical patent/CN111010417A/zh
Pending legal-status Critical Current

Links

Images

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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • 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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于kong的数据格式转换方法、响应系统及方法,属于API网关领域,要解决的技术问题为如何对上游服务器返回的响应数据格式进行自主转换。转换方法为:在API网关发布的API中绑定响应转换插件;通过kong提供的PDK工具获取http请求信息和响应数据,并将http请求信息和响应数据写入响应转换插件;根据响应头的Content‑type属性和Query参数Format的值,对响应数据进行格式转换。系统包括客户端、上游服务器和API网关,API网关配置有PDK,其发布的API绑定有响应转换插件。响应方法包括:对响应数据进行格式转换并将格式转换后的响应数据返回客户端。

Description

基于kong的数据格式转换方法、响应系统及方法
技术领域
本发明涉及API网关领域,具体地说是一种基于kong的数据格式转换方法、响应系统及方法。
背景技术
API网关是微服务基础架构中的基础服务之一,它不但提供基本的路由功能,将请求转发到上游服务,同时还可以进行认证、鉴权和限流等操作,从而保护上游服务。总之,所有的客户端通过API网关接入微服务,在网关层处理所有的非业务功能。
kong是一个开源API网关,它的最底层基于Nginx,并在Nginx上的可伸缩web平台Openresty上实现。通过Kong可以把所有微服务的通用功能集中到一个地方,让每个服务只关注于与业务相关的逻辑。
kong支持通过插件扩展其功能,自带了很多官方常用插件的同时,也支持自定义第三方插件实现定制功能,并添加在上游服务之上。这些插件可以支持安全认证、流量控制、日志、黑白名单和某些转换功能。
API调用者或者开发者有可能对上游服务器返回的响应数据格式有不同的需求。例如,上游服务返回的响应格式为xml,但是API调用者希望得到的是 json格式的响应数据。
基于上述分析,如何对上游服务器返回的响应数据格式进行自主转换,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供一种基于kong的数据格式转换方法、响应系统及方法,来解决如何对上游服务器返回的响应数据格式进行自主转换的问题。
第一方面,本发明提供一种基于kong的数据格式转换方法,应用于主要由客户端、API网关和上游服务器的数据系统,所述API网关为基于kong的网关,客户端发起http请求、上游服务器返回响应数据至API网关后,通过所述方法对响应数据进行格式转换,所述方法为:
在所述API网关发布的API中绑定响应转换插件;
通过kong提供的PDK工具获取http请求信息和响应数据,并将http请求信息和响应数据写入响应转换插件,所述http请求信息包括路由信息,响应数据包括但不限于响应头和响应体;
根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换;
通过响应转换插件将格式转换后的响应数据返回客户端。
作为优选,根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换,包括对响应头的Content-type 属性以及响应体进行修改。
作为优选,还包括清除响应头中的Content-length属性。
作为优选,所述响应转换插件引用openresty接口,响应转换插件通过引用的openresty接口将格式转换后的响应数据返回客户端。
作为优选,Query参数Format的值包括json和xml。
作为优选,路由信息包括但不限于协议、路径、端口和参数。
作为优选,所述响应信息还包括响应状态码。
第二方面,本发明提供一种基于kong的响应系统,所述系统包括:
客户端,所述客户端端用于发起http请求,所述http请求信息包括路由信息;
上游服务器,所述上游服务器用于根据http请求返回响应数据,响应数据包括但不限于响应头和响应体;
API网关,所述API网关为基于kong的网关,用于将客户端发送的http 请求路由至上游服务器,并接收上游服务器返回的响应数据;
kong提供有PDK工具,API网关发布的API绑定有响应转换插件,所述PDK 工具用于获取http请求信息和响应数据并将http请求信息和响应数据写入响应转换插件,所述响应转换插件用于根据响应头的Content-type属性和Query 参数Format的值对响应数据进行格式转换,并将格式转换后的响应数据返回客户端。
第三方面,本发明提供一种基于kong的响应方法,应用于主要由客户端、 API网关和上游服务器的响应系统,所述API网关为基于kong的网关,所述方法包括:
通过客户端发起http请求;
通过API网关将http请求路由至上游服务器;
上游服务器返回响应数据至API网关;
通过如第一方面任一项所述的基于kong的数据格式转换方法,对响应数据进行格式转换并将格式转换后的响应数据返回客户端。
作为优选,API网关调用API将http请求路由至上游服务器。
本发明的基于kong的数据格式转换方法、响应系统及方法具有以下优点:
1、在API网关发布的API中绑定响应转换插件,API网关的PDK获取http 请求信息和响应数据,根据响应头的Content-type属性和Query参数Format 的值,通过响应转换插件对响应数据进行格式转换,实现了响应数据格式的自主选择,从而API调用者可以选择希望看到的响应数据而发起请求,更高的满足了用户的需求;
2、该响应转换插件的功能可以看作是每个微服务的非业务逻辑,如果多个微服务都需要开发响应转换功能,那么无疑会存在重复开发工作,通过API网关Kong的插件实现的响应转换功能,可以将各个微服务的非业务逻辑剥离出来在网关中统一执行,可以让服务后端专注于本身的业务逻辑。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
附图1为实施例1基于kong的数据格式转换方法的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供一种基于kong的数据格式转换方法、响应系统及方法,用于解决如何对上游服务器返回的响应数据格式进行自主转换的技术问题。
实施例1:
本发明的种基于kong的数据格式转换方法,应用于主要由客户端、API网关和上游服务器的数据系统,该API网关为基于kong的网关,客户端发起http 请求、上游服务器返回响应数据至API网关后,通过该方法对响应数据进行格式转换。
该方法为:
S100、在API网关发布的API中绑定响应转换插件;
S200、通过kong提供的PDK工具获取http请求信息和响应数据,并将http 请求信息和响应数据写入响应转换插件,所述http请求信息包括路由信息,响应数据包括但不限于响应头和响应体;
S300、根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换;
S400、通过响应转换插件将格式转换后的响应数据返回客户端。
其中,步骤S100中,如果想实现某个API的响应格式转换的功能,将对应的API中绑定响应转换插件,这属于Kong的一个机制,插件可以绑定所有API 即在所有API上生效,也可以绑定某个API,即绑定的API才生效。
路由信息包括但不限于协议、路径、端口和参数,响应数据还包括响应状态码。
步骤S200中,根据响应头的Content-type属性和Query参数Format的值,即判断http请求中Query的Query参数Format值为json还是xml,根据Query 参数Format的值对响应数据进行格式转换,在进行格式转换是对响应头的 Content-type属性以及响应体进行修改,由于修改了响应体,所以响应字节数也相应的发生了变化,所以需要清除响应头中的Content-length属性。
响应转换插件中引用openresty接口,当响应格式转换完成后,通过在响应转换插件中引用的openresty接口将修改后的完整响应内容返回给客户端。
对于上游服务器返回API网关的响应数据,通过本实施例的基于kong的数据格式转换方法判断http请求Query中的Query参数Format值为json还是 xml,根据Query参数Format值对响应体进行转换,将响应返回给客户端。示例如下:客户端请求http;//example.com/index?Format=xml,(假设 example.com是通过API网关发布且暴露出的域名);如果上游服务器返回json 类型的响应数据,即content-type为application/json,此时Kong会将响应数据转换为xml格式并改写响应头信息content-type为application/json,并清除Content-length属性;最后将修改后的http响应转发到客户端。
实施例2:
本发明的基于kong的响应系统,包括客户端、上游服务器和API网关。客户端端用于发起http请求,上述http请求信息包括路由信息;上游服务器用于根据http请求返回响应数据,响应数据包括但不限于响应头和响应体;API 网关为基于kong的网关,用于将客户端发送的http请求路由至上游服务器,并接收上游服务器返回的响应数据。
其中,kong提供有PDK,其发布的API绑定有响应转换插件,上述PDK用于获取http请求信息和响应数据并将http请求信息和响应数据写入响应转换插件,上述响应转换插件用于根据响应头的Content-type属性和Query参数 Format的值对响应数据进行格式转换,并将格式转换后的响应数据返回客户端。
本实施例中响应转换插件中引用openresty接口。
本发明的基于kong的响应系统,工作方式为:
(1)通过客户端发起http请求;
(2)API网关调用API将http请求路由至上游服务器;
(3)PDK工具获取http请求信息和响应数据,并将http请求信息和响应数据写入响应转换插件,http请求信息包括路由信息和响应信息,响应数据包括但不限于响应头和响应体;
(4)根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换,包括修改响应头的Content-type属性和响应体,并清除响应头中的Content-type属性;
(5)调用响应转换插件中引用的openresty接口将格式转换后的响应数据返回客户端。
实施例3:
本发明的基于kong的响应方法,应用于主要由客户端、API网关和上游服务器的响应系统,上述API网关为基于kong的网关。
该方法包括如下步骤:
(1)通过客户端发起http请求;
(2)通过API网关将http请求路由至上游服务器;
(3)上游服务器返回响应数据至API网关;
(4)通过实施例1公开的基于kong的数据格式转换方法,对响应数据进行格式转换并将格式转换后的响应数据返回客户端。
其中,步骤(2)中API网关调用API将http请求路由至上游服务器。
以上上述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (10)

1.基于kong的数据格式转换方法,其特征在于应用于主要由客户端、API网关和上游服务器的数据系统,所述API网关为基于kong的网关,客户端发起http请求、上游服务器返回响应数据至API网关后,通过所述方法对响应数据进行格式转换,所述方法为:
在所述API网关发布的API中绑定响应转换插件;
通过kong提供的PDK工具获取http请求信息和响应数据,并将http请求信息和响应数据写入响应转换插件,所述http请求信息包括路由信息,响应数据包括但不限于响应头和响应体;
根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换;
通过响应转换插件将格式转换后的响应数据返回客户端。
2.根据权利要求1所述的基于kong的数据格式转换方法,其特征在于根据响应头的Content-type属性和Query参数Format的值,通过响应转换插件对响应数据进行格式转换,包括对响应头的Content-type属性以及响应体进行修改。
3.根据权利要求2所述的基于kong的数据格式转换方法,其特征在于还包括清除响应头中的Content-length属性。
4.根据权利要求1、2或3所述的基于kong的数据格式转换方法,其特征在于所述响应转换插件引用openresty接口,响应转换插件通过引用的openresty接口将格式转换后的响应数据返回客户端。
5.根据权利要求1、2或3所述的基于kong的数据格式转换方法,其特征在于Query参数Format的值包括json和xml。
6.根据权利要求1、2或3所述的基于kong的数据格式转换方法,其特征在于路由信息包括但不限于协议、路径、端口和参数。
7.根据权利要求1、2或3所述的基于kong的数据格式转换方法,其特征在于所述响应信息还包括响应状态码。
8.基于kong的响应系统,其特征在于所述系统包括:
客户端,所述客户端端用于发起http请求,所述http请求信息包括路由信息;
上游服务器,所述上游服务器用于根据http请求返回响应数据,响应数据包括但不限于响应头和响应体;
API网关,所述API网关为基于kong的网关,用于将客户端发送的http请求路由至上游服务器,并接收上游服务器返回的响应数据;
kong提供有PDK工具,API网关发布的API绑定有响应转换插件,所述PDK工具用于获取http请求信息和响应数据并将http请求信息和响应数据写入响应转换插件,所述响应转换插件用于根据响应头的Content-type属性和Query参数Format的值对响应数据进行格式转换,并将格式转换后的响应数据返回客户端。
9.基于kong的响应方法,其特征在于应用于主要由客户端、API网关和上游服务器的响应系统,所述API网关为基于kong的网关,所述方法包括:
通过客户端发起http请求;
通过API网关将http请求路由至上游服务器;
上游服务器返回响应数据至API网关;
通过如权利要求1-7任一项所述的基于kong的数据格式转换方法,对响应数据进行格式转换并将格式转换后的响应数据返回客户端。
10.根据权利要求9所述的基于kong的数据响应方法,其特征在于API网关调用API将http请求路由至上游服务器。
CN201910986285.3A 2019-10-17 2019-10-17 基于kong的数据格式转换方法、响应系统及方法 Pending CN111010417A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910986285.3A CN111010417A (zh) 2019-10-17 2019-10-17 基于kong的数据格式转换方法、响应系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910986285.3A CN111010417A (zh) 2019-10-17 2019-10-17 基于kong的数据格式转换方法、响应系统及方法

Publications (1)

Publication Number Publication Date
CN111010417A true CN111010417A (zh) 2020-04-14

Family

ID=70111861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910986285.3A Pending CN111010417A (zh) 2019-10-17 2019-10-17 基于kong的数据格式转换方法、响应系统及方法

Country Status (1)

Country Link
CN (1) CN111010417A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787103A (zh) * 2020-07-01 2020-10-16 浪潮云信息技术股份公司 一种基于Kong网关的路径变更匹配方法
CN111985186A (zh) * 2020-08-26 2020-11-24 平安国际智慧城市科技股份有限公司 一种字典项转换方法、api网关系统、设备及存储介质
CN112035182A (zh) * 2020-08-31 2020-12-04 浪潮云信息技术股份公司 一种基于kong的API网关监控方法及系统
CN113992755A (zh) * 2021-10-27 2022-01-28 中国电信股份有限公司 基于微服务网关的请求处理方法、系统、设备及存储介质
CN114785637A (zh) * 2022-03-15 2022-07-22 浪潮云信息技术股份公司 一种api网关缓存响应数据的实现方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989356A (zh) * 2018-09-10 2018-12-11 四川长虹电器股份有限公司 一种api网关实现协议转换的方法
US20190095258A1 (en) * 2017-09-27 2019-03-28 Oracle International Corporation Asynchronous handling of service requests

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095258A1 (en) * 2017-09-27 2019-03-28 Oracle International Corporation Asynchronous handling of service requests
CN108989356A (zh) * 2018-09-10 2018-12-11 四川长虹电器股份有限公司 一种api网关实现协议转换的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FOSSILMAN: "《Kong插件开发向导》", 《HTTPS://WWW.JIANSHU.COM/P/ABEF41D85EC4》 *
ZHENGZIZHI: "《Kong Gateway - 22 基于网关服务的响应转换器(Response Transformer)》", 《HTTPS://BLOG.CSDN.NET/ZHENGZIZHI/ARTICLE/DETAILS/80424480》 *
国服最坑开发: "《Kong[nginx]-06 在网关层修改response内容》", 《HTTPS://WWW.JIANSHU.COM/P/DBCD5B1BF36E》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787103A (zh) * 2020-07-01 2020-10-16 浪潮云信息技术股份公司 一种基于Kong网关的路径变更匹配方法
CN111985186A (zh) * 2020-08-26 2020-11-24 平安国际智慧城市科技股份有限公司 一种字典项转换方法、api网关系统、设备及存储介质
CN111985186B (zh) * 2020-08-26 2024-07-02 深圳赛安特技术服务有限公司 一种字典项转换方法、api网关系统、设备及存储介质
CN112035182A (zh) * 2020-08-31 2020-12-04 浪潮云信息技术股份公司 一种基于kong的API网关监控方法及系统
CN113992755A (zh) * 2021-10-27 2022-01-28 中国电信股份有限公司 基于微服务网关的请求处理方法、系统、设备及存储介质
CN114785637A (zh) * 2022-03-15 2022-07-22 浪潮云信息技术股份公司 一种api网关缓存响应数据的实现方法及系统

Similar Documents

Publication Publication Date Title
CN111010417A (zh) 基于kong的数据格式转换方法、响应系统及方法
KR101037818B1 (ko) 메시징 인프라스트럭처 내의 다양한 처리 계층을 추상화하는 컴퓨터 시스템 및 방법, 및 컴퓨터 프로그램 제품
US8605667B2 (en) Systems and methods for exposing different service facades of an underlying network
US8856735B2 (en) System and method of generating REST2REST services from WADL
KR101298062B1 (ko) 인터랙션 라우팅 수행을 개선하기 위한 시스템 및 방법들
EP1735947B1 (en) System and method for communicating asynchronously with synchronous web services using a mediator service
US8626951B2 (en) Interoperability of network applications in a communications environment
US20090125595A1 (en) Intelligent message processing
JP5063898B2 (ja) 分散アプリケーションのオブジェクト指向表現とサービス指向表現との間のマッピング
EP1401169A1 (en) Method and system using a Meta service selector for deploying services over a plurality of networks
EP2302864A1 (en) Method for processing tlv format of communication data
WO2017101815A1 (zh) 一种消息处理方法、装置和系统
Ohnishi et al. Service delivery platform for telecom-enterprise-Internet combined services
Pathak Pro WCF 4: practical Microsoft SOA implementation
Gabbrielli et al. A language-based approach for interoperability of IoT platforms
CN111901384B (zh) 处理报文的系统、方法、电子设备以及可读存储介质
CN101150576B (zh) 网络服务器访问系统及方法
JP4617309B2 (ja) ウェブ・サービス契約選択システム
JP5517255B2 (ja) 複数のサービスノードサーバにおけるサービス連結制御方法、制御ノードサーバ及びプログラム
Sefid‐Dashti et al. A reference architecture for mobile SOA
Cottenier et al. Dynamic and decentralized service composition
Blum et al. A service broker providing real-time telecommunications services for 3rd party services
JP2017220240A (ja) ネットワーク制御システムのためのグラフィカルポリシインタフェース
CN103905302A (zh) 一种在使用虚拟网卡的Windows主机上绑定源IP的方法
CN104253703B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200414