ImmortalCAT
@ImmortalCAT
C# loving

Чем отличается разработка ASP.NET MVC от ASP.NET API?

Чем отличается разработка ASP.NET MVC от ASP.NET API?
это теже принимающие "методы" на вьюшки, с принимающими переменными? которые отдают страницу application/json / xml жи?
  • Вопрос задан
  • 8137 просмотров
Решения вопроса 1
saDam
@saDam
Microservices, .NET Core, EF Core, SQL, RabbitMQ,
В первую очередь нужно посмотреть наследование, как они работают:
Если вы обратите внимание то webapi и asp.mvc(далее просто mvc) контроллеры наследуются от разных классов Http.ApiController и Mvc.Controller.
Нужно понимать что webapi предназначен для реализации REST сервисов с охватом всех видов http запросов(GET, PUT, POST, DELETE итп) и ответом на запросы к webapi вы получаете json с явным указанием статуса ответа.

В MVC можно реализовать то же самое что и в webapi, НО! лично я считаю, что эти вещи нужно четко различать, так как в случаи с MVC, вы должны понимать, что результатом запроса в большинстве случаев является сгенерированная вьюшка, то есть результат http запроса в большенстве случаев это html или что-то похожее. Да в mvc тоже может возвращаться структурированный json(например если вы делаете таблицу с пагинацией или с динамической подгрузкой данных, в таком случаи у вас метод Index возвращает вью на которой вы пишете ajax запросы к методу GetPageForTable этого же контроллера, но тут тоже есть вариация, вы в методе GetPageForTable вольны решать, отдавать только данные или уже сгенерированную вьюшку).

Как итог: webapi - рест сервис со всеми типами http запросов, в котором ответ(по умолчанию) приходит в структурированном json и с явным статусом состояния(200, 404 итп...) . Хорошо подходит для проектов где клиентом может быть не только веб, но и допустим мобильное приложение или еще что-то.
MVC - работает примерно как webapi но результатом может являться сгеренированная html разметка. В таком случаи уже поддержка многих платформ с клиентской части невозможно, представьте, что делать мобильному приложению с html разметкой...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
отдачей результата.
В первом случае вы по умолчанию получаете html, во втором json или xml.
Ответ написан
GreenBee
@GreenBee
ASP.NET программист
В MVC 6 WEBAPI уже встроен. Так что принципиальных отличий нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы