我目前正在设计一个系统组件(在c#中)与api进行交互。 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,该url将询问响应,该响应将返回一个新的APIResult,详细信息为从反序列化的Xml结果中提取。
我在SO的专家面前有2个问题。
1)任何人都可以看到这种方法的问题,或建议一种更好的方式来实现我的意图。
2)是否有一种优雅的方式来创建URL,而不是简单地使用带有传递给函数的参数的string.format。
非常感谢,
番茄酱
答案 0 :(得分:0)
三项建议:
避免使用Success属性。每次点击API时,该属性都会强制您检查它。你将在任何地方结束这样的代码:
如果(result.Success) { // 做一点事 } 其他 { //这里......什么!? }
在OOP中,异常优于错误代码/标志。
使用属性(装饰)自动反序列化API响应(没有代码)。
使用UriBuilder ......好吧,建立uri:http://msdn.microsoft.com/en-us/library/system.uribuilder.scheme.aspx