В чем разница между API Web API и REST API в MVC?
У меня есть немного понимания API REST. По моим сведениям, он используется для работы с службами HTTP (GET POST PUT DELETE).
Когда я добавляю контроллер webapi, он предоставляет мне некоторые основные методы, например:
public class Default1Controller : ApiController
{
// GET api/default1
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/default1/5
public string Get(int id)
{
return "value";
}
// POST api/default1
public void Post([FromBody]string value)
{
}
// PUT api/default1/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/default1/5
public void Delete(int id)
{
}
}
Итак, мой вопрос в том, какая разница между API-интерфейсом API и REST API?
Как из определения отдыха, приведенный выше код основан на REST, так что обычный веб-API в MVC? Я немного смущен, поскольку некоторые люди говорят, что вы используете web api с REST?
Просьба обеспечить лучшее понимание обоих.
Ответы
Ответ 1
Я был там, как и многие из нас. Вокруг этой темы так много неясных слов, как Web API, REST, RESTful, HTTP, SOAP, WCF, Web Services... и много других. Но я собираюсь дать краткое объяснение только тех, которые вы спросили.
ОСТАЛЬНОЕ
Это не API и не фреймворк. Это просто архитектурная концепция. Вы можете найти более подробную информацию здесь.
RESTful
Я нигде не встречал формального определения RESTful. Я считаю, что это просто еще одно модное слово для API, чтобы сказать, соответствуют ли они спецификациям REST.
РЕДАКТИРОВАТЬ: Существует еще одна популярная инициатива с открытым исходным кодом OpenAPI Specification (OAS) (ранее известная как Swagger) для стандартизации REST API.
Веб-API
Это в среде с открытым исходным кодом для написания HTTP API. Эти API могут быть RESTful или нет. Большинство HTTP API, которые мы пишем, не являются RESTful. Эта структура реализует спецификацию протокола HTTP и, следовательно, включает в себя такие понятия, как URI, заголовки запроса/ответа, кэширование, управление версиями, различные форматы содержимого.
Примечание. Я не использовал термин "веб-сервисы" намеренно, потому что его вводят в заблуждение. Некоторые люди используют это как общее понятие, я предпочел называть их HTTP API. Существует фактическая структура под названием "Веб-сервисы" от Microsoft, такая как веб-API. Однако он реализует другой протокол под названием SOAP.
Ответ 2
ASP.NET Web API - это инфраструктура, упрощающая создание служб HTTP, которые охватывают широкий круг клиентов, включая браузеры и мобильные устройства. ASP.NET Web API является идеальной платформой для создания приложений RESTful в .NET Framework.
ОСТАЛЬНОЕ
Лучшее место REST - это когда вы выставляете публичный API через Интернет для обработки CRUD-операций с данными. REST ориентирован на доступ к именованным ресурсам через единый согласованный интерфейс.
МЫЛО
SOAP предоставляет свой собственный протокол и фокусируется на представлении частей логики приложения (не данных) как сервисов. SOAP выставляет операции. SOAP ориентирован на доступ к именованным операциям, каждая из которых реализует некоторую бизнес-логику через разные интерфейсы.
Хотя SOAP обычно называют "веб-сервисами", это неправильно. SOAP имеет очень мало общего с Интернетом. REST предоставляет настоящие "веб-сервисы" на основе URI и HTTP.
Ссылка: http://spf13.com/post/soap-vs-rest
И наконец: то, на что они могут ссылаться, это REST vs. RPC. Смотрите это: http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/
Ответ 3
СМОТРИТЕ: Освоение ASP.NET Web API (автор MalendraHurbuns, Mithun Pattankar) для получения дополнительной информации.
Архитектурный стиль REST представляет собой комбинацию нескольких сетевых архитектур:
- Стили потока данных:
- Труба и фильтр
- Равномерная труба и фильтр
- Стили репликации:
- Реплицированный репозиторий
- кэш
- Иерархические стили:
- Клиент-сервер
- Многоуровневые системы и многоуровневый клиент-сервер
- Клиент-сервер без гражданства,
- Клиент-кэш-апатриды-Север
- Многослойный-клиент-кэш-сервер без гражданства,
- Удаленная сессия
- Удаленный доступ к данным
- Стили мобильного кода:
- Виртуальная машина
- Дистанционная оценка
- Код по требованию
- Многослойный-код по требованию-клиент-кэш-сервер без гражданства,
- Мобильный агент
- Одноранговые стили:
- Событийная интеграция
- С2
- Распределенные объекты
- Распределенные объекты