我从事与外部服务(例如Facebook和Netflix)相关的几个项目.目前,我用来访问这些API的大多数库(包括我自己编写的库)都具有单个方法,因此调用特定的API函数,但似乎总是调用某种基本方法来发出请求.像这样:
public class ExternalApi
{
public string SendMessage( criteria )
{
//do something unique to this method with criteria like
//like generating an xml statement or fql query
return SendRestRequest( modifiedCriteria );
}
public string GetData( criteria )
{
//do something unique to this method with criteria like
//like generating an xml statement or fql query
return SendRestRequest( modifiedCriteria );
}
public string SendRestRequest( modifiedCriteria )
{
//add global things to modifiedCriteria like authentication bits
//or wrapping the criteria in some xml or json shell
var request = new HttpRequest();
//make the request, return data
}
}
所以我的问题是,这里是否有更好的模式或OO主体可以使用,因此在每个单一的API调用方法中,我不是每次都明确地调用基本方法吗?
我在寻找某种调用拦截模式(例如ASP.NET MVC框架和ActionResults)吗?
编辑1:我不希望使用任何其他服务或库(如Wcf)的功能.对于这些项目,我仅使用这些API的1-5%的功能,并且更喜欢为这些事情使用自己的代码.
解决方法:
这是一个很好的示例:
在MSDN上为REST and POX
另外在CodePlex上查看WCF REST Starter Kit Preview 2,应该有与REST客户端相关的编码示例
还有:REST in Windows Communication Foundation (WCF)
这可能对您也有帮助:Sample Client Libraries for REST APIs