我正在处理一些与Facebook和Netflix等外部服务相关的项目。目前,我使用的大多数库都只有单个方法来调用特定的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
}
}
我的问题是,在每个单独的API调用方法中,是否有更好的模式或OO原则可供使用,以便我不必每次都明确调用基本方法?
我正在寻找一种类似于ASP.NET MVC框架和ActionResults的调用拦截模式吗?
编辑1:我不打算使用任何其他服务或库的功能,例如Wcf。对于这些项目,我只使用1-5%的这些API的能力,并且更喜欢自己编写代码来实现这些功能。