背景
•研究业务需求后,写了这篇关于SOAP的总结。
•医疗系统等业务软件,部分使用SOAP传输协议。•SOAP(Simple Object Access Protocol)由Dave Winer、Don Box、Bob Atkinson、 Mohsen Al-Ghosein于1998年设计,当时只作为一种对象访问协议。现在,SOAP规范由万维网联盟的XML工作组维护。•SOAP1.2版在2003年6月24日成为W3C的推荐版本。•SOAP是交换数据的一种协议规范,一种古老的web服务技术,与平台无关,与系统无关。•SOAP的消息格式采用XML。•SOAP是通信协议,使用Internet应用层协议作为其传输协议SMTP和HTTP都可以用来传输SOAP消息,但是由于HTTTP在internet结构中运行很好,所以被广泛采纳。•WSDL(Web Services Description Language)Web服务描述语言,是为描述Web服务发布的XML格式。服务端web服务的公共接口采用WSDl描述。基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。
SOAP和WSDL
•服务端编程,先编写服务描述的wsdl文件(后缀是wsdl),然后把wsdl文件转成对应编程语言的代码。•服务端使用http协议提供wsdl服务查询和请求。•客户端先请求服务端的?wsdl接口,获取所有服务的列表。•使用SOAP消息格式进行POST请求,把请求的消息放在post body里。•服务端接收消息后解码,处理业务逻辑,序列化业务数据后,使用xml编码返回给客户端。
开发
•生态限制,SOAP开发多使用java,第二才是使用php。•golang原生开发,WSDL转换使用第三方包wsdl2go开发,由于此包的局限,复杂数据类型需要手动编写。•python开发使用spyne包提供WSDL服务。