Les contrôleurs API Web peuvent être créés et hébergés dans n'importe quelle application ASP.NET, pas seulement dans les applications MVC. Ainsi, une raison évidente de créer une API Web est si vous ne disposez pas d'un frontal MVC (par exemple, des services Web classiques RESTful hébergés par votre entreprise / organisation).
Les contrôleurs MVC s'appuient généralement sur MVC Framework, si vous regardez les modèles par défaut et la plupart du travail effectué par la communauté et vos pairs, vous remarquerez que presque tous les contrôleurs MVC sont implémentés avec la vue à l'esprit.
Personnellement, j'utilise des contrôleurs MVC lorsque j'ai l'intention de répondre avec une vue (), et j'utiliserai une API Web pour tout ce qui ne dépend pas d'une vue particulière.
Il y a des mises en garde, bien sûr, mais de manière générale, si vous n'avez pas besoin du comportement de liaison de modèle de MVC, votre service est centré sur les données et les opérations sont centrées sur les données (par exemple, les opérations CRUD), vous voudrez probablement un contrôleur d'API Web 'au lieu d'un' Model-View Controller '. Inversement, si vos opérations sont centrées sur la vue (par exemple, fournir une page d'administration utilisateur à l'utilisateur), ou si vous avez besoin de la liaison de modèle de MVC pour générer des `` partiels ajax '' (très peu probable), vous voudrez plutôt un contrôleur MVC.
Personnellement, j'utilise des contrôleurs d'API Web pour piloter des clients RESTful basés sur JSON, j'utilise des contrôleurs MVC pour gérer le routage de base du navigateur et la livraison du SPA.