Я новичок в ASP.NET MVC и веб-API и пытаюсь получить основы. AFAIK, у нас есть шаблоны проектов в VS 2013, называемые MVC
, Web API
и Both of them together
.
Я прочитал учебники и узнал, что мы можем создавать API, используя только MVC, а также шаблон веб-API.
Итак, Каковы различия между ними на основе Архитектуры и Использование?
В принципе, контроллер Web API
является контроллером MVC
, который использует HttpMessageResponse
как базовый тип своего ответа вместо ActionResponse
. В большинстве случаев они одинаковы. Основное различие между типами проектов заключается в том, что тип проекта MVC Application
добавляет веб-специфические вещи, такие как файлы по умолчанию CSS
, JavaScript
и другие ресурсы, необходимые для веб-сайта, которые не нужны для API.
MVC используется для создания веб-сайтов. В этом случае Controllers
обычно возвращает a View
(т.е. Ответ HTML) в запросы браузера. Веб-интерфейсы, с другой стороны, обычно используются для использования другими приложениями. Если вы хотите разрешить другим приложениям получать доступ к вашим данным/функциям, вы можете создать веб-API для облегчения доступа. Например, у Facebook есть API, чтобы разработчики приложений могли получать информацию о пользователях, использующих приложение. Веб-API не обязательно должны использоваться для общественного потребления. Вы также можете создать API для поддержки своих приложений. Например, мы создали веб-API для поддержки функциональности AJAX нашего веб-сайта MVC.
Microsoft изменила способ представления различных шаблонов. Теперь вместо использования разных шаблонов для разных типов проектов они поощряют разработчиков смешивать технологии ASP.NET внутри одного и того же проекта по мере необходимости. Microsoft называет это vNext
.
ОБНОВЛЕНИЕ:. Для ядра ASP.NET Web API был интегрирован в проект проекта MVC 6, а класс ApiController
объединяется в класс Controller
. Дополнительная информация: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
Мои два цента...
Controller
решает, что должно быть View
- то есть контроллер решает, что пользователь должен "видеть" (на основе текущего сценария или контекста), когда они делают запрос.ASPX
определяют, что пользователь должен "видеть" , когда они делают запрос.Web API - это не технология, связанная только с веб-сайтами. Он может использоваться для нескольких целей - не только для веб-сайтов. Поэтому он не знает значения rendering
Дополнительная литература