Я работаю над парой проектов, которые связаны с внешними сервисами, такими как 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. Для этих проектов я использую только 1-5% этих возможностей API и предпочитаю использовать для этих целей свой собственный код.