Що саме таке "Web API" в ASP.Net MVC4?


15

Я знаю, що таке веб-API.
Я писав API на декількох мовах (у тому числі в MVC3).
Я також добре практикуюсь в ASP.Net.
Щойно я виявив, що MVC4 має "Web API", і не переглядаючи приклади відео, я не можу знайти хорошого пояснення, що саме це.
З мого минулого досвіду, технології Microsoft (особливо ASP.Net) мають тенденцію сприймати просту концепцію і загортати її у купу непотрібних накладних витрат, які мають на меті зробити все "простіше".
Чи можете мені хтось пояснити, що саме таке Web API в MVC4? Навіщо мені це потрібно? Чому я не можу просто написати власний API?


3
Ви говорите про нову рамку Web API ? Це окремо від MVC. Якщо це саме ви маєте на увазі, погляньте на цю публікацію в блозі Ріка Штраля.
Одід

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

Найзручніша річ у веб-API (що я ніде не бачу в списку прийнятої відповіді чи вищенаведеного посилання) - це те, що якщо ви повернете IQueryable <>, ваші веб-методи автоматично підтримують синтаксис запиту OData! - У загальних стеках ASP.NET 4.5 "Web API" і "SignalR" замінюють "WCF (я не впевнений, чи вони побудовані поверх WCF чи ні, але WCF було видалено з усіх блок-схем і замінено за допомогою "Web API" та "SignalR").
BrainSlugs83

Why can't I just write my own API?З просто регулярним ASP.NET MVC? Ти можеш. Веб-API ASP.NET MVC просто дає додаткові смаколики, щоб зробити його простіше. Дивіться нижче.
Джим Г.

Відповіді:


16

Веб-API ASP.NET - це "непродумана" структура для побудови HTTP- сервісу незалежно від REST або RPC. Це найкраща реалізація Microsoft RFC 2616 (HTTP Spec).

Звичайно, ви можете створити свій власний API, але ASP.NET Web API:

  • Побудований на основі російської моделі ляльок, яка дозволяє додавати легоподібні модулі до протоколу HTTP
  • Робить HTTP громадянином першого класу, тому всі загальні заголовки сильно набрані (не лише значення імені) та допомагають розбирати їх
  • Дозволяє як для ASP.NET (IIS), так і для хостингу
  • підтримує узгодження контенту, типів ЗМІ, ...
  • Чи Async зверху вниз
  • Використовує аналогічний підхід для клієнтів із HttpClient

6

Новий веб-API від Microsoft, як видно з його назви, говорить про те, що можна писати API, доступні в Інтернеті, з нахилом на REST.

Нещодавно Рік Штраль про це повідав і має хороший аналіз, коли використовувати MVC vs Web API.

Такі речі, як вбудовані переговори щодо контенту, кілька вбудованих форматів тощо.


6

Коротше кажучи: веб-API ASP.NET робить REST першокласним громадянином у .NET , якого WCF насправді не зміг прийняти. Як ви можете знати, веб-API ASP.NET - це структура, що знаходиться for building web APIsна вершині .NET Framework.

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

Однак веб-API ASP.NET - це структура наступного покоління, яка спрощує створення HTTP-сервісів, що охоплюють широке коло клієнтів, таких як браузери та мобільні пристрої. Це ідеальна платформа для побудови RESTful додатків у .NET Framework. Для отримання додаткової інформації та чудових публікацій блогу відвідайте сторінку блогерів ASP.NET Web API


1
Якщо ви вивчаєте історію веб-API, це почалося в WCF.
SASS_Shooter

Ну, це легка його заміна важливими функціями для полегшення конфігурації та впорядкування розробки додатків.
Юсубов

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

1

Веб-API ASP.NET - це структура, яка спрощує створення HTTP-сервісів, що охоплюють широке коло клієнтів, включаючи браузери та мобільні пристрої.

ASP.NET Web API - це ідеальна платформа для побудови RESTful додатків у .NET Framework.

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


Редагувати:

Зокрема, веб-API ASP.NET включає:

  1. Упорядкований конвеєр ASP.NET зі зменшеними витратами, якщо ви хочете розмістити свою послугу в IIS.
  2. HttpClient, який спрощує клієнту підключення до веб-API.

Я сам можу прочитати ці речі. Моє питання - в чому сенс? Чим відрізняється використання веб-API та використання звичайного MVC, але наявність JsonResults замість ViewResults?
Джеймс П. Райт

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

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

-2

Сьогодні веб-додатків недостатньо, щоб охопити своїх клієнтів. Люди дуже розумні, вони користуються пристроями iphone, мобільним телефоном, планшетами тощо у своєму повсякденному житті. Ці пристрої також мають багато додатків для полегшення життя. Насправді ми рухаємося від Інтернету до світу додатків. Отже, якщо ви хочете виставляти свої службові дані браузерам та всім цим сучасним програмам пристроїв швидко та просто, вам слід мати API, сумісний із браузерами та всіма цими пристроями.


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