2009-07-07 77 views
2

我在为我创建的网站创建API。该API将建立在ASP.NET中 - 可能使用VB,并且需要被包括PHP在内的多个平台所使用。在ASP.NET中创建Web API

我读过一些关于REST与SOAP API和感到困惑,我应该走哪个路线。我还需要一些可用于开始的示例和框架。

回答

0

REST是一种简单的架构风格,用于设计易于在多个平台上使用的API。

SOAP是更复杂,但确实提供了标准的许多额外的协议,如交易的可靠性,通讯,安全认证等

除非你正在编写一个复杂的企业邮件系统,然后其余的将可能被罚款(但不要在此引用我)。

您可能想看看Microsoft的WCF网页中的REST。 http://msdn.microsoft.com/en-us/netframework/cc950529.aspx

+0

REST是构建分布式应用程序的体系结构风格。它常常与使用XML或JSON有效负载执行HTTP请求相混淆。 – 2009-07-07 11:49:42

+0

同意 - 重写的答案。 – samjudson 2009-07-07 12:56:26

0

只需创建一个Asp.net的Web服务(一个单独的项目或包括相同的Asp.net Web窗体应用程序中的web方法),要么有点更先进的WCF Web服务(也可以包含在相同的应用程序或独立) 。这也取决于你想要在安全性方面做什么。

如果你创建了单独的项目为您的Asp.net Web窗体应用程序,你可以很容易地使用这些项目/组件与您的服务。

+0

asp.net 3.5 SP1支持Web请求路由(用于REST)以及web服务... – 2009-07-07 11:04:01

0

您的API将提供比您网站上已有的更多功能吗?如果没有,为什么不直接通过代码使现有的网页容易访问。这样你就不需要支持两个不同的接口。

如果你仔细想想,你现有的网页提供的HTML内容是比较容易分析。这些页面包含指向网站中其他功能的链接。这些页面包含用户当前所看到的所有数据。

只要您现有的网站不使用会话状态,你可能已经有一个RESTful API。

1

有技术和技巧,你可以用它来建立这些服务的组合:

  • SOAP服务 - 如果你正在使用SOAP式的服务去,你会想要去的任何WCF或ASMX服务。
  • REST服务 - 如果你有一个RESTful格式去,你有更多的选择。你可以用一个HttpHandler,ASP.NET MVC框架,或WCF

去你们中的一些评估方法时需要考虑的事情:

  • USERBASE技术 - SOAP服务首选在使用Java或.NET客户端的企业中,因为Java和.NET技术可以快速自动创建本地绑定,以使应用程序与远程服务进行通信,就好像它们是本地对象一样。如果您的消费者群体更倾向于PHP/Ruby,那么这种工具并不普遍,这些人群倾向于选择RESTful模型。自动绑定是由于存在WSDL。采用WADL来描述RESTful服务正在慢慢缩小这一差距。
  • 内容类型 - 不仅仅是服务风格,您将提供什么类型的内容以及它将用于什么内容?如果你的客户要直接在UI中使用这些数据,JSON可能是XML的替代品。如果他们将其整合到更多的应用程序的中间层中,那么XML可能是更好的选择。
  • 用户供应和管理 - 一旦您对REST与SOAP和内容类型做出决定,框架(WCF,MVC,.NET)将为您处理大量工作。然后,困难的部分变成用户配置,管理,认证等。用户是否使用现有凭证或额外凭证,是在带内还是在带外调配,如何限制API消耗。完全保证花岗岩。

一旦你消化了这些选项,我建议你看看一些框架,看看你最喜欢哪一个。由于有多种方式完成工作,您应该找到最适合您的需求和能力的方法。此外,无论是长期还是短期,您可能都想开始尝试使用Web服务测试工具 - SOAP UI是我的建议。您可以使用SOAP UI以SOAP和REST格式使用现有的Web服务(例如Flickr,Twitter,Amazon),并了解成功实施的API以及在线路上的功能。一旦你建立了它们,你也可以使用这个工具来执行你的服务的功能和负载测试。