最佳外部REST API访问模式?

我从事与外部服务(例如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

上一篇:c#-多个接口的装饰器-Autofac中的循环依赖谜语


下一篇:使用装饰器和通过继承扩展子类之间有什么区别?