В основному, Web API
контролер - це MVC
контролер, який використовує HttpMessageResponse
як базовий тип своєї відповіді замість ActionResponse
. Вони однакові в більшості інших аспектів. Основна відмінність між типами проектів полягає в тому, що MVC Application
тип проекту додає конкретні веб-речі, такі як за замовчуванням CSS
, JavaScript
файли та інші ресурси, необхідні для веб-сайту, які не потрібні API.
MVC використовується для створення веб-сайтів. У цьому випадку Controllers
зазвичай повертають View
(тобто відповідь HTML) на запити браузера. З іншого боку, веб-API зазвичай використовуються іншими програмами. Якщо ви хочете дозволити іншим програмам отримати доступ до ваших даних / функціональних можливостей, ви можете створити веб-API, щоб полегшити цей доступ. Наприклад, Facebook має API, щоб дозволити розробникам додатків отримати доступ до інформації про користувачів, які використовують додаток. Веб-API не повинні бути для громадського споживання. Ви також можете створити API для підтримки власних програм. Наприклад, ми створили веб-API для підтримки функціональності AJAX нашого веб-сайту MVC.
Microsoft змінила спосіб їх представлення різних шаблонів. Тепер замість того, щоб використовувати різні шаблони для різних типів проектів, вони заохочують розробників поєднувати технології ASP.NET всередині одного проекту за необхідності. Microsoft називає це vNext
.
ОНОВЛЕННЯ: Для ядра ASP.NET Web API був інтегрований у тип проекту MVC 6 і ApiController
клас консолідується у Controller
клас. Детальніші відомості: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6