Avec les contrôleurs ASP.NET MVC, vous pouvez exposer vos données dans différents formats. AspNetWebAPI est conçu explicitement pour créer des API, mais je peux facilement le faire avec les contrôleurs MVC, ce n'est pas clair pour moi dans quels cas ce serait mieux que les contrôleurs MVC traditionnels. Je m'intéresse aux scénarios où les avantages de WebApi sont évidents et il serait intéressant d'ajouter une autre couche de complexité à mes applications.
Question: quels sont les avantages et / ou les inconvénients de l'utilisation de asp.net WebApi par rapport à MVC?
asp.net-mvc
asp.net-web-api
Hugo Zapata
la source
la source
Réponses:
WebApi permet de créer des services qui peuvent être exposés via HTTP plutôt que via un service formel tel que WCF ou SOAP. Une autre différence réside dans la manière dont WebApi utilise le protocole Http et en fait un véritable citoyen Http de première classe.
MISE À JOUR: L'API Web ASP.NET Core a été intégrée au type de projet MVC. La
ApiController
classe est consolidée dans laController
classe. Plus d'informations sur: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6Un lien pertinent de comparaison, de discussions et de tutoriels:
la source
WebAPI crache OData, de sorte que vous bénéficiez de tous les avantages de l'utilisation d'OData. Par exemple, avec WebAPI, vous obtenez:
la source
API Web Asp.Net VS Asp.Net MVC 1 . Asp.Net MVC est utilisé pour créer des applications Web qui retournent à la fois des vues et des données, mais l'API Web Asp.Net est utilisée pour créer des services HTTP complets avec un moyen simple et simple qui ne renvoie que les données et non les vues.
2 . L'API Web aide à créer des services REST-ful sur le .NET Framework et prend également en charge la négociation de contenu (il s'agit de décider du meilleur format de données de réponse qui pourrait être acceptable par le client. Il peut s'agir de JSON, XML, ATOM ou d'autres données formatées ), auto-hébergement qui ne sont pas dans MVC.
3 . L'API Web prend également en charge le retour des données dans un format particulier tel que JSON, XML ou tout autre basé sur l'en-tête Accept dans la requête et vous ne vous inquiétez pas à ce sujet. MVC renvoie uniquement des données au format JSON à l'aide de JsonResult.
4 . Dans l'API Web, la demande est mappée aux actions basées sur les verbes HTTP, mais dans MVC, elle est mappée au nom des actions.
5 . L'API Web Asp.Net est un nouveau framework et fait partie du framework ASP.NET principal. La liaison de modèle, les filtres, le routage et d'autres fonctionnalités MVC existant dans l'API Web sont différents de MVC et existent dans le nouvel assembly System.Web.Http. Dans MVC, ces fonctionnalités existent avec dans System.Web.Mvc. Par conséquent, l'API Web peut également être utilisée avec Asp.Net et en tant que couche de service autonome.
6 . Vous pouvez mélanger l'API Web et le contrôleur MVC dans un seul projet pour gérer les requêtes AJAX avancées qui peuvent renvoyer des données au format JSON, XML ou tout autre format et créer un service HTTP complet. En général, cela s'appellera l'auto-hébergement d'API Web.
7 . Lorsque vous avez mélangé MVC et un contrôleur d'API Web et que vous souhaitez implémenter l'autorisation, vous devez créer deux filtres, un pour MVC et un autre pour l'API Web, car les deux sont différents.
8 . De plus, l'API Web est une architecture légère et, à l'exception de l'application Web, elle peut également être utilisée avec des applications de téléphone intelligent.
La source originale est ici
la source
Similitudes
1) les deux héritent de ihhtphandler pour l'asyncrequest, donc essentiellement apicontroller ou mvc controller sont tous les deux le wrapper autour du Web.
Différences: 1) le contrôleur mvc est très lourd si vous pouviez passer par sa définition, vous pouvez voir combien d'interfaces et le code de base il a utilisé, l'api Web est un contrôleur plus léger et distingue la demande par ses paramètres passés (oui, nous pouvons le changer aussi! )
2) Le contrôleur MVC a trop de fonctionnalités telles que le retour de vues, le résultat de l'action, le résultat javascript, etc., mais dans l'API Web, il contient soit JSON, soit XML
3) L'API sert à implémenter des services Restful (obtenir, publier, mettre, supprimer, options) qui peuvent indépendamment héberger n'importe où sans les vues dépendantes, le contrôleur MVC ne peut pas prendre en charge cela car il est étroitement intégré aux vues.
la source
Cette image semble montrer les différences et les similitudes dans la façon dont la matière. J'espère que cette aide est intéressante pour moi.
la source
À un moment donné, vous voudrez peut-être oublier ASP.NET MVC tous ensemble. Si vous êtes un développeur .NET mais que vous souhaitez créer une application à page unique (en utilisant Angular par exemple), vous souhaiterez profiter des avantages d'un service RESTful (WebAPI) sans tous les ballonnements inutiles fournis avec ASP.NET MVC.
la source
ASP.NET MVC et l'API Web ASP.NET les deux utilisent à des fins différentes
ASP.NET
ASP.NET propose trois cadres pour la création d'applications Web: Web Forms, ASP.NET MVC et pages Web ASP.NET. Les trois frameworks sont stables et matures, et vous pouvez créer d'excellentes applications Web avec n'importe lequel d'entre eux. Quel que soit le cadre que vous choisissez, vous bénéficierez de tous les avantages et fonctionnalités d'ASP.NET partout.
Chaque framework cible un style de développement différent. Celui que vous choisissez dépend de la combinaison de vos ressources de programmation (connaissances, compétences et expérience de développement), du type d'application que vous créez et de l'approche de développement avec laquelle vous êtes à l'aise. Les trois frameworks seront pris en charge, mis à jour et améliorés dans les futures versions d'ASP.NET.
MVC
ASP.NET MVC vous offre un moyen puissant et basé sur des modèles de créer des sites Web dynamiques qui permet une séparation nette des préoccupations et qui vous donne un contrôle total sur le balisage pour un développement agréable et agile. ASP.NET MVC comprend de nombreuses fonctionnalités qui permettent un développement rapide et convivial pour TDD pour créer des applications sophistiquées qui utilisent les dernières normes Web.
API Web
L'API Web ASP.NET est une infrastructure qui facilite la création de services HTTP qui atteignent un large éventail de clients, y compris les navigateurs et les appareils mobiles. L'API Web ASP.NET est une plate-forme idéale pour créer des applications RESTful sur le .NET Framework.
vous pouvez lire plus de formulaire ici http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
la source
ASP.NET MVC se concentre sur la simplification de la sortie HTML. L'API Web ASP.NET vise à faciliter la sortie des données brutes.
Dans le monde des WebForms, ASP.NET MVC équivaudrait à des pages .aspx et l'API Web ASP.NET serait .asmx
la source
Asp.Net MVC est utilisé pour créer des applications Web qui retournent à la fois des vues et des données, mais l'API Web Asp.Net est utilisée pour créer des services HTTP complets avec un moyen simple et simple qui ne renvoie que les données et non les vues.
L'API Web aide à créer des services REST sur le .NET Framework et prend également en charge la négociation de contenu (il s'agit de décider du meilleur format de réponse que le client pourrait accepter. Cela peut être JSON, XML, auto-hébergement qui ne le sont pas. dans MVC.
L'API Web prend également en charge le retour des données dans un format particulier tel que JSON, XML ou tout autre basé sur l'en-tête Accept dans la requête et vous ne vous inquiétez pas à ce sujet. MVC renvoie uniquement des données au format JSON à l'aide de JsonResult.
la source
Habituellement, WebAPI est utilisé pour les services de données où MVC peut générer plus de types de sorties.
WebAPI simplifie à coup sûr la façon dont nous pouvons créer des services de données. C'est propre et facile à cet effet. MVC est livré avec d'autres outils.
MVC peut générer n'importe quelle sortie que WebAPI peut générer. La génération de sorties à partir de modèles peut être facilement réalisée dans MVC. Je ne trouve aucune raison de le faire dans WebAPI. Les développeurs PHP et les anciens programmeurs ASP peuvent connaître cette attitude du passé, où vous pouvez créer des fichiers HTML impliqués avec du code C # à l'intérieur.
WebAPI- DATA MVC - DONNÉES, UI / HTML, XHTML, fichiers, modèles, etc.
la source