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.