WebService WebAPI SOAP XML JSON

WCF、WebAPI、WCFREST、WebService四种数据交换技术

Web Service

  1. 基于SOAP协议的,数据格式是XML
  2. 只支持HTTP协议
  3. 不是开源的,但可以被任意一个了解XML的人使用
  4. 只能部署在IIS上

webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

webService三要素:SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。该协议是基于http协议的(soap将信息进行XML的序列化后,再用http协议的方式再打包进行传送)。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

WCF

  1. 基于SOAP的,数据格式是XML
  2. 是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
  3. WCF的主要问题是,它配置起来特别的繁琐
  4. 不是开源的,但可以被任意一个了解XML的人使用
  5. 可以部署应用程序中或者IIS上或者Windows服务中

WCF Rest

  1. 想使用WCF Rest service,你必须在WCF中使用webHttpBindings
  2. 分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词
  3. 要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求
  4. 使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate
  5. 它支持XML、JSON以及ATOM这些数据格式

Web API

  1. 这是一个简单的构建HTTP服务的新框架
  2. 在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
  3. 不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
  4. 也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
  5. 可以部署在应用程序和IIS上
  6. 是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
  7. Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

WCF和WEB API我该选择哪个?

  1. 当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
  2. 当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
  3. 当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
  4. 当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

使用WEB API技术实现数据交换,数据格式之XML和JSON:https://blog.csdn.net/qazzwx/article/details/79460930

另附:

1.现在基本都是web API,http请求,格式是json数据。soap基本只有旧的系统还在用

2.一般来说,我只会在需要传递大量文本时才喜欢XML,因为XML擅长包装和标记文本。

当传递小数据对象时,只有少量字符串(ID,日期等),我倾向于使用JSON,因为它更小,更容易解析,并且更具可读性。

另外请注意,即使选择XML,这也不意味着需要使用SOAP。SOAP是一个非常重的协议,专为合作伙伴之间的互操作性而设计。当你在这里控制客户端和服务器时,它并不一定有意义。


 

 

 

 

你可能感兴趣的:(it)