2009-07-07 35 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以及在線路上的功能。一旦你建立了它們,你也可以使用這個工具來執行你的服務的功能和負載測試。