Создание API для сайта ASP.NET MVC с ограничением скорости и кэшированием - PullRequest
6 голосов
/ 23 мая 2010

В последнее время я очень заинтересовался API, в частности тем, как их создавать. Для целей этого вопроса предположим, что я создал сайт ASP.NET MVC, на котором есть некоторые данные; Я хочу создать API для этого сайта.

У меня есть несколько вопросов по этому поводу:

  1. Какой тип API мне следует создать? Я знаю, что API REST и oData очень популярны. Каковы плюсы и минусы каждого и как их реализовать? Насколько я понимаю, API REST с ASP.NET MVC были бы просто действиями, которые возвращают JSON вместо Views, а API oData задокументированы здесь .
  2. Как мне справиться с написанием? Чтение из обоих типов API довольно просто. Однако написание сложнее. При использовании подхода REST я понимаю, что могу использовать HTTP POST, но как мне реализовать аутентификацию? Кроме того, с oData, как письмо работает в первую очередь?
  3. Как реализовать базовое ограничение скорости и кэширование? Из моего прошлого опыта работы с API это очень важные вещи, так что сервер API не перегружен. Какой лучший способ настроить эти две вещи?
  4. Могу ли я получить пример кода? Буду признателен за любой код, связанный с C # и ASP.NET MVC.

Заранее спасибо!

Хотя это широкий вопрос, я думаю, что это не слишком широкий ...:)

Есть несколько похожих на этот вопрос вопросов об API, но я не нашел ни одного, который бы непосредственно касался вопросов, которые я изложил здесь.

1 Ответ

2 голосов
/ 23 мая 2010

Служба REST может вернуть любой тип носителя. Это может быть стандартный список, указанный в IANA , или созданный вами пользовательский.

OData - это протокол, основанный на AtomPub . Сам AtomPub является RESTful, однако OData в настоящее время нарушает некоторые ограничения REST.

Аутентификация службы RESTful лучше всего выполняется с помощью заголовка HTTP Authorization.

Вы пишете в службу OData так же, как и в службе AtomPub. Прочитайте спецификацию.

Лично я бы побеспокоился о написании ценного сервиса, который эффективно доставляет контент, прежде чем беспокоиться об ограничении скорости. Вы можете быть счастливы, когда наконец столкнетесь с этой проблемой.

Для получения дополнительной информации о кэшировании прочитайте this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...