Что такое «веб-API» в ASP.Net MVC4?


15

Я знаю, что такое веб-API.
Я написал API на нескольких языках (в том числе в MVC3).
Я также хорошо практикуюсь в ASP.Net.
Я только что обнаружил, что у MVC4 есть «Web API» и, не просматривая примеры видео, я не могу найти хорошее объяснение того, что именно это такое.
Исходя из моего прошлого опыта, технологии Microsoft (особенно ASP.Net) имеют тенденцию брать простую концепцию и заключать ее в кучу бесполезных накладных расходов, которые призваны сделать все «проще».
Может кто-нибудь объяснить мне, что такое веб-API в MVC4? Зачем мне это нужно? Почему я не могу просто написать свой собственный API?


3
Вы говорите о новой платформе Web API ? Это отдельно от MVC. Если это то, что вы имеете в виду, взгляните на это сообщение в блоге Рика Строля.
Одед

1
@Oded: Вы должны поставить это как ответ.
Джеймс П. Райт

Самая классная вещь в Web API (которую я не вижу нигде в списке принятых ответов или приведенной выше ссылки) - это то, что если вы возвращаете IQueryable <>, ваши веб-методы автоматически поддерживают синтаксис запроса OData! - В общем стеке ASP.NET 4.5 «Web API» и «SignalR» «заменяют» WCF (я не уверен, построены ли они поверх WCF или нет, но WCF был удален из всех блок-схем и заменен с «Веб-API» и «SignalR»).
BrainSlugs83

Why can't I just write my own API?С обычным ASP.NET MVC? Вы можете. Веб-API ASP.NET MVC просто дает вам дополнительные возможности, чтобы упростить его. Пожалуйста, смотрите ниже.
Джим Г.

Ответы:


16

ASP.NET Web API - это «несуверенная» структура для построения службы HTTP независимо от REST или RPC. Это лучшая реализация Microsoft RFC 2616 (HTTP Spec).

Конечно, вы можете создать свой собственный API, но ASP.NET Web API:

  • Создан на основе модели Russian Doll, которая позволяет добавлять лего-подобные модули в HTTP-конвейер.
  • Делает HTTP первоклассным гражданином, поэтому все общие заголовки строго типизированы (а не только имя) и помогает с их разбором
  • Позволяет как ASP.NET (IIS) хостинг, так и хостинг
  • поддерживает согласование контента, типы медиа, ...
  • Является ли асинхронным сверху вниз
  • Использует аналогичный подход для клиентов с HttpClient

6

Новый веб-API от Microsoft, как следует из его названия, предлагает все о написании API-интерфейсов, доступных через Интернет, с ориентацией на REST.

Рик Страл недавно написал об этом в блоге и провел хороший анализ того, когда использовать MVC против Web API.

Такие вещи, как встроенное согласование контента, несколько встроенных форматов и многое другое


6

Вкратце: ASP.NET Web API делает REST первоклассным гражданином в .NET , которого WCF не смог охватить. Как вы, возможно, знаете, ASP.NET Web API - это фреймворк for building web APIsповерх .NET Framework.

Одно из самых больших разочарований, которое мы испытали как веб-разработчики, - это столкновение с бесконечными конфигурациями с WCF. Я имею в виду, что WCF великолепен, но не был принят REST со времен фреймворка WCF Web API . Был набор REST Starter Kit, но он умер.

Тем не менее, ASP.NET Web API - это инфраструктура следующего поколения, которая позволяет легко создавать службы HTTP, которые охватывают широкий круг клиентов, таких как браузеры и мобильные устройства. Это идеальная платформа для создания приложений RESTful на .NET Framework. Для получения дополнительной информации и хороших сообщений в блоге посетите страницу блоггеров ASP.NET Web API.


1
Если вы исследуете историю Web API, она началась в WCF.
SASS_Shooter

Что ж, это его легкая замена важными функциями, облегчающими настройку и упрощающими разработку приложений.
Юсубов

@Yusobov: Это не совсем так - существуют также службы данных WCF, которые неплохо подходят для создания REST API-интерфейса, совместимого с Odata. Я использую его в производственной среде, и он действительно хорошо работает после его настройки. Единственная проблема заключается в том, что его намного сложнее настроить, чем веб-API ASP.NET.
Адриан Григор,

1

ASP.NET Web API - это инфраструктура, которая позволяет легко создавать HTTP-сервисы для широкого круга клиентов, включая браузеры и мобильные устройства.

ASP.NET Web API является идеальной платформой для создания приложений RESTful в .NET Framework.

http://www.asp.net/web-api


РЕДАКТИРОВАТЬ:

В частности, ASP.NET Web API включает в себя:

  1. Оптимизированный конвейер ASP.NET с уменьшенными издержками, если вы решите разместить свой сервис в IIS.
  2. HttpClient, который упрощает подключение клиента к веб-API.

Я могу читать эти вещи сам. Мой вопрос в чем смысл? Чем же отличается использование Web API и обычного MVC, но наличие JsonResults вместо ViewResults?
Джеймс П. Райт

1. До MVC 4 вы могли вернуть JSONResult без каких-либо проблем. MVC 4 просто сохраняет эту возможность, включает в себя некоторые другие вспомогательные классы, чтобы упростить ее, и оптимизирует конвейер ASP.NET, чтобы уменьшить накладные расходы, когда вы знаете, что вам не нужно возвращать ViewResults.
Джим Г.

1
Кроме того, поскольку это эффективное обновление для веб-API WCF, вы не замужем за IIS. Вы можете самостоятельно разместить службу ASP.NET Web API, если хотите. wcf.codeplex.com/…
Джим Г.

-2

Сегодня веб-приложения недостаточно, чтобы привлечь клиентов. Люди очень умные, они используют iphone, мобильные телефоны, планшеты и т.д. устройства в своей повседневной жизни. Эти устройства также имеют множество приложений для облегчения жизни. На самом деле, мы движемся от Интернета к миру приложений. Поэтому, если вы хотите быстро и просто представить данные своей службы браузерам и всем этим современным приложениям для устройств, у вас должен быть API, совместимый с браузерами и всеми этими устройствами.


это, кажется, не добавляет ничего существенного к пунктам, сделанным и объясненным в предыдущих 4 ответах
комнат
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.