2010-05-23 62 views
6

最近,我對API非常感興趣,特別是如何創建它們。爲了這個問題的目的,假設我已經創建了一個ASP.NET MVC網站,其中包含一些數據;我想爲這個網站創建一個API。使用速率限制和緩存爲ASP.NET MVC網站創建API

我對此有多個問題:

  1. 應該創建什麼類型的API?我知道REST和oData API非常受歡迎。每個方案的優缺點是什麼?我如何實施它們?據我瞭解,到目前爲止,ASP.NET MVC的REST API將只是返回JSON而不是Views的操作,並且oData APIs被記錄爲here
  2. 我該如何處理寫作?從這兩種API類型中讀取都非常簡單。但是,寫作更復雜。使用REST方法,我明白我可以使用HTTP POST,但是如何實現身份驗證?另外,通過oData,寫作如何起作用?
  3. 如何實現基本的速率限制和緩存?根據我過去使用API​​的經驗,這些都是非常重要的事情,所以API服務器不會超載。設置這兩個東西的最好方法是什麼?
  4. 我可以得到一些示例代碼嗎?任何涉及C#和ASP.NET MVC的代碼將不勝感激。

在此先感謝!

雖然這是一個很寬泛的問題,我認爲這不是廣... :)

有此一說是關於API的一些類似的問題,但我還沒有找到任何直接解決我在這裏概述的問題。

回答

2

REST服務可以返回任何媒體類型。它可以是標準化的,在IANA列出,或者它可以是由您創建的自定義的。

OData是建立在AtomPub之上的協議。 AtomPub本身是RESTful,但是,OData目前打破了一些REST約束。

RESTful服務的驗證最好使用HTTP授權標頭完成。

您以與使用AtomPub服務相同的方式寫入OData服務。閱讀規範。

就個人而言,我擔心編寫一個有價值的服務,在擔心限速之前高效地提供內容。當你最終遇到這個問題時,你會很高興。

有關緩存的更多信息,請參閱this

+0

你能指點我關於C#和ASP.NET MVC的任何示例代碼嗎?不管怎麼說,還是要謝謝你! – 2010-05-23 17:19:48

+0

@Maxim http://msdn.microsoft.com/en-us/magazine/dd943053.aspx – 2010-05-23 21:31:21