如果我可以使用ASP.net Web API,是否需要WCF

如果我可以使用ASP.net Web API,是否需要WCF,wcf,asp.net-web-api,Wcf,Asp.net Web Api,今天我读了很多关于ASP.NETWebAPI的文章。如果我需要一个只需要HTTP作为传输的Web服务,我可以使用ASP.net API,而不需要WCF,这对我的理解正确吗? 到目前为止,似乎WebAPI比WCF更易于使用 最好的 托马斯你的问题的答案基本上是肯定的。如果您a)只想使用HTTP,b)想将内容返回为XML或JSON,c)想使用RESTful API,d)不需要任何高级消息传递功能,那么web API是您的最佳选择。正如您所指出的,它比WCF更易于使用 创建web服务时,有两个基本选项

今天我读了很多关于ASP.NETWebAPI的文章。如果我需要一个只需要HTTP作为传输的Web服务,我可以使用ASP.net API,而不需要WCF,这对我的理解正确吗? 到目前为止,似乎WebAPI比WCF更易于使用

最好的
托马斯你的问题的答案基本上是肯定的。如果您a)只想使用HTTP,b)想将内容返回为XML或JSON,c)想使用RESTful API,d)不需要任何高级消息传递功能,那么web API是您的最佳选择。正如您所指出的,它比WCF更易于使用

创建web服务时,有两个基本选项:基于SOAP的服务或RESTful API。如果您使用的是基于SOAP的服务,那么应该使用WCF。如果您使用的是RESTful服务,那么应该使用WebAPI。您可以查看此博客帖子以进一步讨论:

另外,您选择SOAP还是REST取决于您的具体情况。一些一般准则如下:

支持SOAP服务的因素:

  • 您是服务的唯一消费者,或者服务的范围有限 消费者
  • 高级功能,如事务、WS-Security、, 需要可靠的消息传递等
  • 服务必须通过HTTP以外的其他传输公开,如TCP、MSMQ、命名管道等
  • 要公开的功能不容易映射到实体或集合上的CRUD操作
  • 您需要支持复杂类型的强类型
  • 网络带宽问题不是问题
支持RESTful服务的因素:

  • 服务必须由大量客户端(即互联网)使用
  • 不需要高级功能,如事务、WS-Security、可靠消息传递等
  • 可接受仅通过HTTP公开的服务
  • 功能可以轻松映射到实体或集合上的CRUD操作
  • 您需要支持其他媒体类型,如JSON或YAML
  • 网络带宽问题是一个需要考虑的问题
编辑: 作为对您的评论的回应,如果您使用WCF/SOAP,那么您就可以使用SOAP支持的广泛功能。这包括事务、可靠的消息传递、各种消息传递模式(单向、双工等)和WS-Security。这些标准由WS-*维护,通常称为WS-*。可以找到WS-*标准的列表

如果您使用的是Web API/REST,则不能使用任何WS-*功能。但是,仍然可以使用IIS和ASP.Net中可用的标准身份验证技术对RESTful服务进行身份验证和授权访问。有关详细信息,请参阅以下链接:


还有一些。你的问题的答案基本上是肯定的。如果您a)只想使用HTTP,b)想将内容返回为XML或JSON,c)想使用RESTful API,d)不需要任何高级消息传递功能,那么web API是您的最佳选择。正如您所指出的,它比WCF更易于使用

创建web服务时,有两个基本选项:基于SOAP的服务或RESTful API。如果您使用的是基于SOAP的服务,那么应该使用WCF。如果您使用的是RESTful服务,那么应该使用WebAPI。您可以查看此博客帖子以进一步讨论:

另外,您选择SOAP还是REST取决于您的具体情况。一些一般准则如下:

支持SOAP服务的因素:

  • 您是服务的唯一消费者,或者服务的范围有限 消费者
  • 高级功能,如事务、WS-Security、, 需要可靠的消息传递等
  • 服务必须通过HTTP以外的其他传输公开,如TCP、MSMQ、命名管道等
  • 要公开的功能不容易映射到实体或集合上的CRUD操作
  • 您需要支持复杂类型的强类型
  • 网络带宽问题不是问题
支持RESTful服务的因素:

  • 服务必须由大量客户端(即互联网)使用
  • 不需要高级功能,如事务、WS-Security、可靠消息传递等
  • 可接受仅通过HTTP公开的服务
  • 功能可以轻松映射到实体或集合上的CRUD操作
  • 您需要支持其他媒体类型,如JSON或YAML
  • 网络带宽问题是一个需要考虑的问题
编辑: 作为对您的评论的回应,如果您使用WCF/SOAP,那么您就可以使用SOAP支持的广泛功能。这包括事务、可靠的消息传递、各种消息传递模式(单向、双工等)和WS-Security。这些标准由WS-*维护,通常称为WS-*。可以找到WS-*标准的列表

如果您使用的是Web API/REST,则不能使用任何WS-*功能。但是,仍然可以使用IIS和ASP.Net中可用的标准身份验证技术对RESTful服务进行身份验证和授权访问。有关详细信息,请参阅以下链接:


还有其中一些。

您写道,REST缺少WS-Security。这对实现带有身份验证/授权的API的目标有多大影响?我根据您的评论在我的帖子中添加了一些信息。如果您使用的是Web API/REST,则不能使用任何WS-*功能,因为这是特定于SOAP的。但是,您可以使用IIS/ASP.NET中提供的其他技术对Web API服务进行身份验证和授权。这非常有用。我认为对于我的应用程序来说,Web API将是足够的,同时,因为我们的应用程序将有大量的流量