Joh*_*ell 28 c# asp.net-mvc-4 asp.net-web-api
WebAPI是否支持SOAP?我正在尝试在MVC4中编写SOAP服务器,虽然我可以在WCF中执行它,但似乎WebAPI正在替换它,但我认为没有办法在此使用SOAP,只使用REST Style接口的JSON/XML.
小智 19
引用Scott Guthrie的话:过去几年看到了Web API的兴起 - 通过普通的HTTP而不是通过更正式的服务契约(如SOAP或WS*)暴露的服务.
所以我会说不.
myt*_*thz 14
您应该考虑查看ServiceStack,它允许您的同一服务支持REST + SOAP API,尽管由于SOAP仅适用于HTTP POST,因此它有一些限制
作为SOAP的替代方案,ServiceStack提供了WCF的添加服务引用的更好替代方案,该方法可以使用内置于ServiceStackVS中的Add ServiceStack Reference功能从URL生成类型化API .
有趣的是,尽管WebAPI ApiController方法在使用C#RPC方法创建和定义繁琐的Web服务时采用了与WCF相同的RPC方法,但它们仍然无法支持由同一公司制作的自己的SOAP标准.
这是ServiceStack 基于消息的设计的一个证明,它提供了许多优势,不能承受相同的服务支持多种端点和格式,包括REST,SOAP和MQ端点,以及生成服务器端或客户端HTML网站,如果你需要它.这是一个丰富的Northwind数据库编辑器的示例,因为它是使用ServiceStack构建的,它自动启用了一个类型化的REST API,可以使用丰富的本机桌面客户端,移动应用程序和单页面应用程序调用它们.
尽管尽管支持SOAP具有互操作性,可访问性和向后兼容性的原因,但我们并不建议将其用于构建Web服务平台,因为它不一定是复杂,脆弱,缓慢和冗长的,并且有更好的替代方法可供使用.我在InfoQ的采访中详细解释了一下.
事实上,WebApi并不支持开箱即用的SOAP.但它是一个非常灵活的框架,您可以"适应"它来处理SOAP:没有什么可以阻止您手动解析收到的SOAP消息(毕竟它们是纯XML)并手动生成响应作为XML字符串,然后发送它们与适当的内容类型标题(您甚至可以为此编写自己的内容格式化程序).
根据您的需求和现有的代码库,这可能是值得的,或者您可能希望使用更加SOAP等技术,例如WCF或已经提到的ServiceStack框架.
| 归档时间: |
|
| 查看次数: |
34015 次 |
| 最近记录: |