API交互设计

本文关键字:交互 API | 更新日期: 2023-09-27 17:53:28

我目前正在设计一个与api交互的系统组件(c#)。api调用的格式为:

http:// <name of api site>'< JSP page name>?<parameter set>

调用返回一个包含调用结果或错误消息的xml文档。我最终希望组件返回以下类型的对象:

 public readonly class APIResult<T>
 {
     public bool Success {get; set;}
     public T Details {get; set;}
 }

我目前的计划是有一个类创建URL,然后将其传递给另一个泛型类(类型为T),以使用URL调用API,该API询问响应,该响应返回一个新的APIResult,其中包含从Xml结果反序列化中推断出来的详细信息。

我有两个问题要问SO的专家。

有谁能看出这个方法的问题,或者建议一个更好的方法来实现我的意图吗?

2)是否有一种优雅的方式来创建url,而不是简单地使用字符串。使用传递给函数的参数进行格式化。

许多谢谢,

API交互设计

三个建议:

  1. 避免使用Success属性。该属性将强制您在每次访问API时检查它。你会看到像这样的代码到处都是:

    如果(result.Success){//做某事}其他的{//这里…什么! ?}

    在OOP中异常比错误码/标志更可取。

  2. 使用属性(装饰)自动反序列化API响应(不需要代码)

  3. Use UriBuilder to…那么,构建uri: http://msdn.microsoft.com/en-us/library/system.uribuilder.scheme.aspx