一种soapapi转换为restapi的公共消息头承载方法及装置的制作方法

文档序号:7762843阅读:352来源:国知局
专利名称:一种soap api转换为rest api的公共消息头承载方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种SOAP API转换为REST API的公共消息 头承载方法及装置。
背景技术
简单对象访问协议应用程序编程接口(SOAP API,Simple Object Access Protocol Application Programming Interface)为基于 Web Service 机白勺应用软件系 统间实现互连互通的接口,SOAP API使基于不同操作系统、不同语言开发出的应用软件方 便实现互通。整个SOAP API消息包括消息头(header承载)和消息体(body承载)。消息 头用于承载公共信息,用于鉴权认证等公共处理;消息体用于承载业务相关信息,用于业务 相关处理。表行化的状态转移应用程序编程接口(REST API, Representational State Transfer Application Programming Interface)为基于互联网的WEB应用能力之间常用 的互操作接口,即遵循REST风格的API,遵循REST风格的API对应的系统为REST风格的系 统,REST风格的系统特点包括对外开放的信息都为资源,资源通过传统TOB技术的通用资 源标识符(URI,Uniform Resource Identifier)来标识;及该对外开放的资源操作只有4 个,包括增加、修改、删除、获取,分别对应传统WEB技术超文本传输协议(HTTP,Hyper Text Transfer Protocol)协议中 Post (增加),Put (修改)、Delete (删除),Get (获取)。随着互联网的快速发展,预示着所有能力都可以向互联网开放,例如传统的使用 Web service的应用系统开始向互联网开放,因此,需要将SOAP API开放为对应的REST API (即SOAP API转换为REST API),SOAP API开放为对应的REST API时,对业务部分内 容都会抽象为一个个资源,SOAP公共消息头部分需要在新的REST API接口寻找一个公共 的承载点。由于WEB技术应用HTTP协议,WEB应用的HTTP协议的HTTP消息头,主要承载 HTTP协议客户端和服务器协商相关字段;HTTP消息体,主要承载业务消息。因此,在SOAP API转换为REST API时,需要在HTTP中寻找合适位置携带SOAP消息头相关内容。现有技术一提供的SOAP API转换为REST API的技术方案为扩展HTTP消息头字 段,以X开头增加SOAP消息头要携带的内容,如下POST http://www. example, com/sms/1. 0/smsmessaging/outbound/100860001/ requests HTTP/1. 1Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==Accept: application/xmlContent-Type:application/xml ;charset = UTF-8Host:example· com:80X-Partner-Id:3500001X-Service-Id:35000010001
此扩展导致HTTP协议字段中头域名非常多,并且很混乱。且HTTP协议字段的扩 展一般和HTTP协议客户端和服务器底层协商机制相关,此扩展导致客户端与服务器底层 协商处理速度变慢。现有技术二提供的SOAP API转换为REST API的技术方案为将SOAP消息头在 HTTP消息体中携带。然而,由于HTTP消息体主要承载业务消息,在每个业务消息的XML文件中包含消 息头内容,导致业务消息和消息头强关联,在文档和程序的处理上独立性不强。另外,在程 序处理时,必须解析整个业务消息体才能完成消息头要求的认证,造成处理速度缓慢。因此,现有的SOAP API转换为REST API的技术,存在冗余以及造成消息处理速度 缓慢的问题。

发明内容
本发明实施例提供一种SOAP API转换为REST API的公共消息头承载方法及装置。本发明实施例是通过以下技术方案实现的本发明实施例提供一种简单对象访问协议应用程序编程接口 SOAP API转换为表 行化的状态转移应用程序编程接口 REST API的公共消息头承载方法,包括确定REST API公共消息承载字段;所述公共消息承载字段为位于RESTAPI消息 头,且符合如下形式的字段一个头域名+ —个头域值+多个属性值对;将SOAP消息头的相关内容以所述属性值对的形式承载于所述公共消息承载字段 中。本发明实施例提供一种简单对象访问协议应用程序编程接口 SOAP API转换为表 行化的状态转移应用程序编程接口 REST API的装置,包括确定单元,用于确定REST API公共消息承载字段;所述公共消息承载字段为符合 如下形式的字段一个头域名+ —个头域值+多个属性值对;转换单元,用于将SOAP消息头的相关内容以所述属性值对的形式承载于所述公 共消息承载字段中。由上述本发明实施例提供的技术方案可以看出,本发明实施例由于将SOAP消息 头的相关内容承载于REST API公共消息承载字段中,由于所述公共消息承载字段位于REST API消息头,因此避免了业务消息和消息头强关联,以及在程序处理时,必须解析整个业务 消息体才能完成消息头要求的认证,造成的处理速度缓慢等问题;另外,由于所述公共消息 承载字段为符合如下形式的字段一个头域名+—个头域值+多个属性值对,因此可以有效 避免头域名过多导致的客户端与服务器底层协商缓慢的问题。因此,本发明实施例提供的SOAP API转换为REST API的公共消息头承载方案,保 证了系统的简洁性和比较好的协议解析性能。


图1为本发明实施例一种SOAP API转换为REST API的公共消息头承载方法流程 图2为本发明实施例一种SOAP API转换为REST API的装置结构示意图; 图3为本发明实施例一种SOAP API转换为REST API的装置中确定单元结构示意 图4为本发明实施例另一种SOAP API转换为REST API的装置中确定单元结构示
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施 例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的 所有其他实施例,都属于本发明保护的范围。本发明一个实施例提供一种SOAP API转换为REST API的公共消息头承载方法, 如图1所示,包括如下步骤步骤10 确定REST API公共消息承载字段;所述公共消息承载字段为位于REST API消息头,且符合如下形式的字段一个头域名+ —个头域值+多个属性值对;所述公共消息承载字段可以为所述HTTP协议中的已有的字段,例如认证 (Authorization)字段,或者,也可以为REST API中新创建的字段。不论是已有的字段还 是新创建的字段,都符合一个头域名+ —个头域值+多个属性值对的形式,这样可以有效避 免头域名过多导致的客户端与服务器底层协商缓慢的问题。其中,所述属性值对包括属性名+属性值。本发明实施例对属性值对的个数不做限制,可以为两个,或更多。步骤11 将SOAP消息头的相关内容以所述属性值对的形式承载于所述公共消息 承载字段中。其中,需要承载于所述公共消息承载字段中的所述SOAP消息头的内容随互通的 应用系统的不同而不同,本发明实施例对此不做限制。本发明实施例提供了一种简洁方便的SOAP API转换为REST API的公共消息头承 载方案,由于将SOAP消息头的相关内容承载于REST API公共消息承载字段中,所述公共消 息承载字段位于REST API消息头,因此避免了业务消息和消息头强关联,以及在程序处理 时,必须解析整个业务消息体才能完成消息头要求的认证,造成的处理速度缓慢等问题;另 外,由于所述公共消息承载字段为符合如下形式的字段一个头域名+—个头域值+多个属 性值对,因此可以有效避免头域名过多导致的客户端与服务器底层协商缓慢的问题。因此,本发明实施例提供的SOAP API转换为REST API的方法,保证了系统的简洁 性和比较好的协议解析性能。本发明实施例提供的一种SOAP API转换为REST API的实例如下以扩展HTTP协议消息头的“Authorization”字段为例,通过研究Authorization 字段发现,Authorization在HTTP协议中允许扩展为不同的认证模式,面向不同认证模式 时,携带的消息属性值对可以任意扩展,在SOAP API转换为REST API实例中,扩展后的协 议如下,其中带下划线的部分为扩展后的内容,被扩展字段为“Authorization”字段,位于 承载协商相关字段的HTTP协议消息头,扩展后的“Authorization”字段包含一个头域名
CN 102143200 A
说明书3/7页
0029]
图;
意图。
5Authorization,一个头域值EXAMPLEAUTH realm = ” EXAMPLE,和多个由属性名+属性值组 成的属性值对,如devld =” 3500001”,authType =”01”,authValue = ” QffxhZGRpb jpvcGVuIHNlc2FtZQ ==,,,timeStamp =”0415011502”,appld = ” 350000100020003”,SAN =” 100860001”,OA =” 13912345678”,FA =” 13912345678”,multicastMessaging = “ false"
本实施例扩展后的HTTP协议如下POST http://www. example, com/sms/1. 0/smsmessaging/outbound/100860001/ requests HTTP/1. 1Accept: application/xmlContent-Type:application/xml ;charset = UTF-8Host:example, com:80Authorization:EXAMPLEAUTH realm =”EXAMPLE”,devld =” 3500001”,authType =,,01,,,authValue = ” QWxhZGRpb ipvcGVuIHNlc2FtZQ == ’,,timeStamp =” 0415011502”,appld = ” 350000100020003”,SAN =” 100860001”,OA =” 13912345678”,FA =” 13912345678”,multicastMessaging =,,false,,,< ? xml version = " 1.0〃 encoding = " UTF-8 “ ? >< s m s : outboundSMSMessageRequest xmlns : sms ="urn:oma:xml: rest:sms:1" ><address>tel:+1350000001</address><address>tel:+1350000999</address><senderAddress>tel:+1351111999</senderAddress>
<senderName>senderName</senderName><receiptRequest><notifyURL>http : / / appl ication. example, com/notifications/ DeliveryInfoNotification</notifyURL></receiptRequest><outboundSMSTextMessage><messag>Text Message</message>
</outboundSMSTextMessage><c1ientCorrelator>67893</cIientCorrelator></sms:outboundSMSMessageRequest>为进一步理解本发明,下面以具体应用场景为例进行说明。本发明实施例提供的SOAP API转换为REST API的方法一种应用场景为电信能 力向互联网应用开放,如电信运营商开放短信能力给互联网应用使用。开放的REST API公共消息头携带互联网应用提供者和应用标识等信息到电信能 力开放网关,电信能力开放网关需要对应用提供者和应用标识做鉴权认证。本实例中将 SOAP消息头的相关内容存放到HTTP的“Authorization”字段,电信能力开放网关获取HTTP 底层Authorization信息就可以完成鉴权认证,不需要解析业务消息,提高处理速度,具体 REST API 消息如下,Authorization 为头域名,EXAMPLEAUTH realm = "EXAMPLE”为头域值, 下划线部分为扩展的字段,包含SOAP消息头的相关内容,以多个属性值对的形式被加入到 Authorization 字段中POST http://www. example, com/sms/1. 0/smsmessaging/outbound/100860001/ requests HTTP/1. 1Accept: application/xmlContent-Type:application/xml ;charset = UTF-8Host:example, com:80Authorization:EXAMPLEAUTH realm =”EXAMPLE,,,devld =” 3500001”,authType =,,01,,,authValue = ” QWxhZGRpb ipvcGVuIHNlc2FtZQ == ’,,timeStamp =” 0415011502”,appld = ” 350000100020003”,SAN =” 100860001”,OA =” 13912345678”,FA =” 13912345678”,multicastMessaRinR =,,false,,,< ? xml version = " 1.0〃 encoding = " UTF-8" ? >< s m s : outboundSMSMessageRequest xmlns : sms ="urn:oma:xml: rest:sms:1" ><address>tel:+1350000001</address><address>tel:+1350000999</address><senderAddress>tel:+1351111999</senderAddress><senderName>senderName</senderName><receiptRequest><notifyURL>http : / / appl ication. example, com/notifications/ DeliveryInfoNotification</notifyURL></receiptRequest>
<outboundSMSTextMessage><message>Text Message</message></outboundSMSTextMessage><c1ientCorrelator>67893</cIientCorrelator></sms:outboundSMSMessageRequest>本发明实施例提供的SOAP API转换为REST API的方法另一种应用场景为电信 能力向终端应用开放,如电信位置能力向终端应用开放。终端应用获取自己或者他人位置时,需要携带公共的消息头到能力开放网关 做认证使用,可以在REST API的Authorization字段中携带。下发消息示例如下, Authorization为头域名,EXAMPLEAUTH realm = "EXAMPLE”为头域值,下划线部分为扩展的 字段,包含所述公共的消息头的相关内容,以多个属性值对的形式被加入到Authorization 字段中GET http//www. example, com/1. 0/1erminallocation/13912345678/1ocation HTTP/1. 1Accept: application/xmlContent-Type:application/xml ;charset = UTF-8Host:example, com:80Authorization:EXAMPLEAUTH realm =”EXAMPLE,,,username =,,13912345678,,,authType =,,01,,,authValue = ” QWxhZGRpb ipvcGVuIHNlc2FtZQ == ’,,timeStamp =” 0415011502”< ? xml version = " 1.0〃 encoding = " UTF-8 “ ? ><terminalLocation:terminalLocationRequestxmlns: terminalLocation =" urn:oma:xml :rest: terminalLocation: 1" ><address>tel:+1350000001</address></terminalLocation:terminalLocationRequest)本发明实施例提供一种SOAP API转换为REST API的装置,如图2所示,包括确定单元20,用于确定REST API公共消息承载字段;所述公共消息承载字段为位
于所述REST API消息头,且符合如下形式的字段一个头域名+ —个头域值+多个属性值 对;所述属性值对包括属性名+属性值。转换单元21,用于将SOAP消息头的相关内容以所述属性值对的形式承载于所述 公共消息承载字段中。如图3中所示,所述确定单元20 —种实施例进一步包括选择子单元201,用于在REST API消息头的已有字段中选择所述公共消息承载字 段,所选择的字段包括认证字段。如图4中所示,所述确定单元20另一种实施例进一步包括创建子单元202,用于在REST API消息头中创建所述公共消息承载字段。本发明实施例所述SOAP API转换为REST API的装置,由于将SOAP消息头的相关内容承载于REST API公共消息承载字段中,所述公共消息承载字段位于REST API消息 头,因此避免了业务消息和消息头强关联,以及在程序处理时,必须解析整个业务消息体才 能完成消息头要求的认证,造成的处理速度缓慢等问题;另外,由于所述公共消息承载字段 为符合如下形式的字段一个头域名+—个头域值+多个属性值对,因此可以有效避免头域 名过多导致的客户端与服务器底层协商缓慢的问题。因此,本发明实施例提供的SOAP API转换为REST API的装置,保证了系统的简洁 性和比较好的协议解析性能。综上所述,本发明实施例由于将SOAP消息头的相关内容承载于RESTAPI公共消息 承载字段中,所述公共消息承载字段位于REST API消息头,因此避免了业务消息和消息头 强关联,以及在程序处理时,必须解析整个业务消息体才能完成消息头要求的认证,造成的 处理速度缓慢等问题;另外,由于所述公共消息承载字段为符合如下形式的字段一个头 域名+ —个头域值+多个属性值对,因此可以有效避免头域名过多导致的客户端与服务器 底层协商缓慢的问题。因此,本发明实施例提供的SOAP API转换为REST API的公共消息头承载方案,保 证了系统的简洁性和比较好的协议解析性能。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件完成,所述的程序可以存储于一计算机可读存储介质中,例如 只读存储器(简称ROM)、随机存取存储器(简称RAM)、磁盘、光盘等。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围 为准。
权利要求
1.一种简单对象访问协议应用程序编程接口 SOAP API转换为表行化的状态转移应用 程序编程接口 REST API的公共消息头承载方法,其特征在于,包括确定REST API公共消息承载字段;所述公共消息承载字段为位于RESTAPI消息头,且 符合如下形式的字段一个头域名+ —个头域值+多个属性值对;将SOAP消息头的相关内容以所述属性值对的形式承载于所述公共消息承载字段中。
2.如权利要求1所述的方法,其特征在于,所述公共消息承载字段为认证字段。
3.如权利要求1所述的方法,其特征在于,所述公共消息承载字段为新创建的字段。
4.如权利要求1所述的方法,其特征在于,所述属性值对包括属性名+属性值。
5.一种简单对象访问协议应用程序编程接口 SOAP API转换为表行化的状态转移应用 程序编程接口 REST API的装置,其特征在于,包括确定单元,用于确定REST API公共消息承载字段;所述公共消息承载字段为符合如下 形式的字段一个头域名+ —个头域值+多个属性值对;转换单元,用于将SOAP消息头的相关内容以所述属性值对的形式承载于所述公共消 息承载字段中。
6.如权利要求5所述的装置,其特征在于,所述确定单元进一步包括选择子单元,用于在REST API协议消息头的已有字段中选择所述公共消息承载字段, 所选择的字段包括认证字段。
7.如权利要求5所述的装置,其特征在于,所述确定单元进一步包括创建子单元,用于在REST API协议消息头中创建所述公共消息承载字段。
8.如权利要求5、6或7所述的装置,其特征在于,所述属性值对包括属性名+属性值。
全文摘要
一种通信技术领域中SOAP API转换为REST API时公共消息头承载方法,包括确定RESTAPI公共消息承载字段;所述公共消息承载字段为位于REST API消息头,且符合如下形式的字段一个头域名+一个头域值+多个属性值对;将SOAP消息头的相关内容以所述属性值对的形式承载于所述公共消息承载字段中。本发明实施例还提供一种SOAP API转换为REST API的装置。本发明实施例避免了现有的转换方案中,业务消息和消息头强关联,以及在程序处理时,必须解析整个业务消息体才能完成消息头要求的认证,造成的处理速度缓慢等问题;同时,还有效避免头域名过多导致的客户端与服务器底层协商缓慢的问题。
文档编号H04L29/08GK102143200SQ20101051629
公开日2011年8月3日 申请日期2010年10月20日 优先权日2010年10月20日
发明者吕军涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1