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