0
我目前正在努力爲我們的API編寫一個非常好的SDK。我現在正在尋找幾種方法之一。什麼是C#SDK CRUD操作的正確返回類型?
- 我可以從我的API調用中返回HttpResponseMessage(如下所示)。
- 我可以做一些數據處理,並只傳回對象。
- 我可以創建一個自定義對象來包裝SDK返回,以便它可以包含它需要的東西。
- 當遇到服務器錯誤時,我可以拋出異常,但是如果應用程序可以從異常中恢復,這可能會很昂貴。
- 我也可以在getter中返回一個元組,這樣我就可以同時獲得一個對象和HttpResponseMessage。
我希望SDK能夠對數據進行恰當的處理,我不確定是否有一個如何在.NET中編寫好的SDK的例子。我實際上會自己使用這個SDK,所以我希望它很好。我寫了一些代碼,我會在這裏包括這些代碼,但是我認爲目前的迭代是有缺陷的。
public interface IBaseApi<T>
{
Task<IEnumerable<T>> GetAllAsync();
Task<T> GetByIdAsync(int id);
Task<HttpResponseMessage> InsertAsync(T obj);
Task<HttpResponseMessage> UpdateAsync(T obj);
Task<HttpResponseMessage> DeleteAsync(int id);
}
現在我們返回一個空對象來表示Get請求失敗。但我認爲這是一個有缺陷的概念。
我也看過Facebook,Square和其他一些Sdks。沒有什麼比我更重要的了。
那麼我的API應該發送什麼樣的返回類型?只是一個指針,我不知道客戶端將如何使用這個。它可能是更大的查詢的一部分,或直接傳遞給它們的控制器。我的總體目標是消費者可以儘可能少地處理自己,但如果出現錯誤信息,這也是有意義的。