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应该发送什么样的返回类型?只是一个指针,我不知道客户端将如何使用这个。它可能是更大的查询的一部分,或直接传递给它们的控制器。我的总体目标是消费者可以尽可能少地处理自己,但如果出现错误信息,这也是有意义的。