gpt4 book ai didi

asp.net-web-api - wcf Restful服务和WEB API的区别

转载 作者:行者123 更新时间:2023-12-02 20:19:48 25 4
gpt4 key购买 nike

我查询了很久,到底哪里需要使用WEB API,哪里应该使用WCF Restful服务。无论我们想在 WEB API 中实现什么,我们都可以在 WCF Rest 中实现。我试图深入研究答案,但我发现我们需要在 wcf 中进行额外的设置,例如 URI 模板、契约(Contract)、端点。但更多的是关于设置,但我想知道使用 WCF Restful Services 背后的真正原因。

最佳答案

网络服务

  • 它基于 SOAP,并以 XML 格式返回数据。
  • 仅支持 HTTP 协议(protocol)。
  • 它不是开源的,但任何理解 XML 的客户端都可以使用。
  • 它只能托管在 IIS 上。


WCF

  • 它也基于 SOAP,并以 XML 格式返回数据。
  • 它是网络服务 (ASMX) 的演变,支持 TCP、HTTP、HTTPS、命名管道、MSMQ 等各种协议(protocol)。
  • WCF 的主要问题是其繁琐且广泛的配置。
  • 它不是开源的,但任何理解 XML 的客户端都可以使用。
  • 它可以托管在应用程序中、IIS 上或使用窗口服务。


WCF 休息

  • 要将 WCF 用作 WCF REST 服务,您必须启用 webHttpBindings
  • 它分别通过 [WebGet][WebInvoke] 属性支持 HTTP GET 和 POST 动词。
  • 要启用其他 HTTP 动词,您必须在 IIS 中进行一些配置,以接受 .svc 文件上特定动词的请求。
  • 使用 WebGet 通过参数传递数据需要配置。必须指定 UriTemplate
  • 支持 XML、JSON 和 ATOM 数据格式。


Web API

  • 这是用于以轻松简单的方式构建 HTTP 服务的新框架。
  • Web API 是开源的,是使用 .NET Framework 构建 RESTful 服务的理想平台。
  • 与 WCF REST 服务不同,它使用 HTTP 的全部功能(例如 URI、请求/响应 header 、缓存、版本控制、各种内容格式)。
  • 它还支持 MVC 功能,例如路由、 Controller 、操作结果、过滤器、模型绑定(bind)器、IOC 容器或依赖项注入(inject)、单元测试,使其更加简单和强大。
  • 它可以托管在应用程序内或 IIS 上。
  • 它是一种轻量级架构,非常适合智能手机等带宽有限的设备。
  • 响应由 Web API 的 MediaTypeFormatter 格式化为 JSON、XML 或您想要添加为 MediaTypeFormatter 的任何格式。


在 WCF 或 Web API 之间进行选择

  • 当您想要创建一项支持特殊场景(例如单向消息传递、消息队列、双工通信等)的服务时,请选择 WCF。
  • 当您想要创建一个可以使用可用的快速传输 channel (例如 TCP、命名管道,甚至 UDP(在 WCF 4.5 中))的服务,并且当所有其他传输 channel 都支持 HTTP 时,请选择 WCF不可用。
  • 如果您想要通过 HTTP 创建面向资源的服务,并且可以使用 HTTP 的全部功能(例如 URI、请求/响应 header 、缓存、版本控制、各种内容格式),请选择 Web API。
  • 如果您希望向广泛的客户端(包括浏览器、手机、iPhone 和平板电脑)公开您的服务,请选择 Web API。

更多详情可以引用http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/ .

关于asp.net-web-api - wcf Restful服务和WEB API的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36441875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com