Dot-Net

為 REST API 編寫包裝器的指南

  • October 19, 2009

我圍繞 REST 和不太結構化的 Web 界面編寫了一些非常隨意的包裝器,但都是為了好玩,很少關注錯誤檢測和處理、超時等。

有人可以給我一些關於實踐或資源的指示,以便為 REST API 開發一個可靠的、專業的 .NET(或其他平台)包裝器嗎?

我想到的事情是:

  1. 解釋 HTTP 錯誤程式碼並從 API 錯誤中過濾協議錯誤。
  2. 建構基於 URL 的請求,可能帶有模式匹配和令牌替換。
  3. 將回發與請求相匹配。
  4. 如何將 OO 模型映射到 REST 模型。一些請求適合靜態方法,例如獲取列表,而其他請求則掛在靜態和實例之間,也許是一個包含所有靜態方法的普通提供者模式?

新:從那以後,我發現這幾乎是進行 Yahoo REST 呼叫的基本指南,但它可以作為一個起點。

重要提示: 一個非常複雜且很少涉及的方面是如何處理 REST API 上的表單身份驗證。單獨的登錄請求、cookie 儲存等。

儘管我以 OOP 式的方式包裝了無數的 Web 服務,但我發現很難為您的問題找到一個好的答案。

可以在此處找到幾個 Yahoo API 範例:http: //curlobjects.com/trac/browser/trunk/lib/YahooApi

1 解釋 HTTP 錯誤程式碼並從 API 錯誤中過濾協議錯誤。

我的基礎 http 類有一個可以覆蓋的 http 錯誤回調。

2 建構基於 URL 的請求,可能帶有模式匹配和令牌替換。

我更喜歡字元串連接。

4 如何將 OO 模型映射到 REST 模型。一些請求適合靜態方法,例如獲取列表,而其他請求則掛在靜態和實例之間,也許是一個包含所有靜態方法的普通提供者模式?

有時您需要一個大型靜態工廠/提供程序,有時您需要為每個方法創建一個類,有時為每組相關方法創建一個類……確實沒有一種正確的方法可以解決這個問題。我總是花一些時間來感受一下服務的結構,然後嘗試找到一種優雅的方式來抽像出重複的部分。

如果您對登錄表單、cookie 等有任何更具體的問題,我很樂意為您解答。

編輯:

提到了 HttpWebRequest,我猜您需要設置ClientCertificate 屬性並正確使用 SSL,或者您可以使用 CertificatePolicy忽略所有 SLL 錯誤。

引用自:https://stackoverflow.com/questions/1589179