С помощью контроллеров ASP.NET MVC вы можете предоставлять свои данные в различных форматах. AspNetWebAPI разработан специально для создания API, но я могу легко сделать это с помощью контроллеров MVC, мне не ясно, в каких случаях это было бы лучше, чем традиционные контроллеры MVC. Меня интересуют сценарии, в которых преимущества WebApi очевидны, и стоило бы добавить еще один уровень сложности в мои приложения.
Вопрос: каковы преимущества и / или недостатки использования asp.net WebApi по отношению к MVC?
asp.net-mvc
asp.net-web-api
Хьюго Сапата
источник
источник
Ответы:
WebApi позволяет создавать службы, которые могут быть доступны через HTTP, а не через формальные службы, такие как WCF или SOAP. Еще одно отличие состоит в том, как WebApi использует протокол Http и делает его действительно первоклассным Http-гражданином.
ОБНОВЛЕНИЕ: ASP.NET Core, веб-API интегрированы в тип проекта MVC.
ApiController
Класс консолидируется вController
классе. Подробнее на: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6Соответствующая ссылка для сравнения, обсуждений и руководств:
источник
WebAPI поддерживает OData, поэтому вы получаете все преимущества использования OData. Например, с WebAPI вы получаете:
источник
Веб-API Asp.Net VS Asp.Net MVC 1 . Asp.Net MVC используется для создания веб-приложений, которые возвращают как представления, так и данные, но Asp.Net Web API используется для создания полнофункциональных HTTP-сервисов с легким и простым способом, который возвращает только данные, а не просмотр.
2 . Веб-API помогает создавать REST-сервисы поверх .NET Framework, а также поддерживает согласование содержимого (это касается определения наилучшего формата данных ответа, который может быть приемлем для клиента. Это могут быть JSON, XML, ATOM или другие форматированные данные. ), собственный хостинг, которых нет в MVC.
3 . Веб-API также заботится о возврате данных в определенном формате, таком как JSON, XML или любом другом, на основе заголовка Accept в запросе, и вы не беспокоитесь об этом. MVC возвращает данные только в формате JSON с использованием JsonResult.
4 . В веб-API запрос сопоставляется с действиями на основе HTTP-глаголов, но в MVC он сопоставляется с именем действия.
5 . Веб-API Asp.Net - это новый фреймворк и часть ядра ASP.NET. Привязка модели, фильтры, маршрутизация и другие функции MVC, существующие в веб-API, отличаются от MVC и существуют в новой сборке System.Web.Http. В MVC эти возможности существуют в System.Web.Mvc. Следовательно, веб-API также можно использовать с Asp.Net и в качестве отдельного уровня обслуживания.
6 . Вы можете смешивать веб-API и контроллер MVC в одном проекте для обработки расширенных запросов AJAX, которые могут возвращать данные в JSON, XML или любом другом формате, и создания полноценной HTTP-службы. Обычно это называется самостоятельным размещением через веб-API.
7 . Когда вы смешали контроллер MVC и веб-API и хотите реализовать авторизацию, вам необходимо создать два фильтра: один для MVC, а другой - для веб-API, поскольку они разные.
8 . Более того, веб-API - это легкая архитектура, и, кроме веб-приложения, его также можно использовать с приложениями для смартфонов.
Первоисточник здесь
источник
Сходства
1) оба наследуются от ihhtphandler для asyncrequest, поэтому в основном контроллер apicontroller или mvc являются оболочкой для Интернета.
Различия: 1) mvc-контроллер очень тяжелый, если вы могли бы просмотреть его определение, вы можете увидеть, сколько интерфейсов и базовый код он использовал, веб-API - более легкий контроллер и отличить запрос по переданным параметрам (да, мы тоже можем изменить его! )
2) Контроллер MVC имеет слишком много функций, таких как возврат представлений, результат действия, результат javascript и т.д., но в веб-API есть либо JSON, либо XML
3) API предназначен для реализации сервисов Restful (получение, публикация, размещение, удаление, параметры), которые могут независимо размещаться где угодно, вне зависимости от представлений, контроллер MVC не может поддерживать это, поскольку он тесно интегрирован с представлениями.
источник
В какой-то момент вы, возможно, захотите полностью забыть о ASP.NET MVC. Если вы разработчик .NET, но хотите создать одностраничное приложение (например, используя Angular), вам понадобятся преимущества службы RESTful (WebAPI) без всего ненужного раздувания, которое поставляется с ASP.NET MVC.
источник
Это изображение, кажется, показывает различия и сходства в этом вопросе. Надеюсь, этот хелп мне интересен.
источник
ASP.NET MVC и ASP.NET Web api оба они используют для разных целей
ASP.NET
ASP.NET предлагает три платформы для создания веб-приложений: веб-формы, ASP.NET MVC и веб-страницы ASP.NET. Все три фреймворка стабильны и зрелы, и с любой из них можно создавать отличные веб-приложения. Независимо от того, какой фреймворк вы выберете, вы получите все преимущества и возможности ASP.NET повсюду.
Каждый фреймворк нацелен на свой стиль разработки. То, что вы выберете, зависит от комбинации ваших программных активов (знаний, навыков и опыта разработки), типа создаваемого вами приложения и подходящего подхода к разработке. Все три платформы будут поддерживаться, обновляться и улучшаться в будущих выпусках ASP.NET.
MVC
ASP.NET MVC дает вам мощный, основанный на шаблонах способ создания динамических веб-сайтов, который обеспечивает четкое разделение задач и дает вам полный контроль над разметкой для приятной и быстрой разработки. ASP.NET MVC включает множество функций, которые обеспечивают быструю, дружественную к TDD разработку для создания сложных приложений, использующих новейшие веб-стандарты.
Веб-API
Веб-API ASP.NET - это платформа, которая упрощает создание служб HTTP, которые охватывают широкий круг клиентов, включая браузеры и мобильные устройства. Веб-API ASP.NET - идеальная платформа для создания приложений RESTful на платформе .NET Framework.
вы можете прочитать дополнительную форму здесь http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
источник
ASP.NET MVC ориентирован на упрощение вывода HTML. Веб-API ASP.NET ориентирован на упрощение вывода необработанных данных.
В мире WebForms ASP.NET MVC будет эквивалентен страницам .aspx, а веб-API ASP.NET будет .asmx.
источник
Asp.Net MVC используется для создания веб-приложений, которые возвращают как представления, так и данные, но Asp.Net Web API используется для создания полнофункциональных HTTP-сервисов с легким и простым способом, который возвращает только данные, а не просмотр.
Веб-API помогает создавать REST-сервисы поверх .NET Framework, а также поддерживает согласование содержимого (это касается определения наилучшего формата данных ответа, который может быть приемлем для клиента. Это может быть JSON, XML, самостоятельный хостинг, которые не являются в MVC.
Веб-API также заботится о возврате данных в определенном формате, таком как JSON, XML или любом другом, на основе заголовка Accept в запросе, и вы не беспокоитесь об этом. MVC возвращает данные только в формате JSON с использованием JsonResult.
источник
Обычно WebAPI используется для служб данных, где MVC может генерировать больше типов выходных данных.
WebAPI, безусловно, упрощает способ создания служб данных. Для этого он чистый и легкий. В MVC есть еще несколько инструментов.
MVC может генерировать любой вывод, который может выводить WebAPI. Создание выходных данных из шаблонов может быть легко выполнено в MVC. Я не могу найти причины для этого в WebAPI. Разработчики PHP и старые программисты ASP могли знать это отношение из прошлого, когда вы могли создавать файлы HTML, связанные с кодом C # внутри.
WebAPI- DATA MVC - ДАННЫЕ, UI / HTML, XHTML, файлы, шаблоны и т. Д.
источник