ASP.NET MVC 4 Demande d'Appel à Distance WebAPI
J'ai créé un couple ASP.NET les applications MVC dans le passé, mais je n'ai jamais utilisé WebAPIs avant. Je me demandais comment je pourrais créer un simple MVC 4 app qui n'simple CRUD des trucs via WebAPI au lieu de dans le cadre d'un contrôleur MVC. Le truc, c'est que la WebAPI devrait être une solution distincte (et, en fait, pourrait très bien être sur un autre serveur/domaine).
Comment dois-je faire? Ce qui me manque? Est-ce juste une question de mise en place des itinéraires de point à la WebAPI du serveur? Tous les exemples que j'ai trouvé montrant comment consommer WebAPIs à l'aide d'une application MVC semblent assumer la WebAPI est "cuit" à la MVC de l'application, ou, au moins, est sur le même serveur.
Oh, et pour être clair, je ne parle pas des appels Ajax à l'aide de jQuery... je veux dire que le MVC de l'application du contrôleur doit utiliser la WebAPI pour obtenir/mettre des données.
Vous devez vous connecter pour publier un commentaire.
Vous devriez utiliser les nouvelles HttpClient pour consommer votre Api HTTP. Ce que je peux en outre vous conseiller de faire vos appels totalement asynchrone. Comme ASP.NET MVC contrôleur des actions de soutien de la Tâche modèle de Programmation Asynchrone, il est assez puissant et facile.
Ici est trop simplifié exemple. Le code suivant est la classe d'aide pour une demande d'échantillon:
Alors, je peux consommer qu'à travers mon MVC contrôleur asynchrone comme ci-dessous:
Vous pouvez regarder ci-dessous pour voir les effets de l'I/O asynchrone opérations avec ASP.NET MVC:
Mon Prendre sur la Tâche Asynchrone basé sur la Programmation en C# 5.0 et ASP.NET les Applications Web MVC
Merci à tous pour les réponses. @tugberk m'a conduit sur la voie de droite, je pense. Cela a fonctionné pour moi...
Pour mon CarsRESTService helper:
Et puis pour CarsController.cs:
Vous pouvez utiliser WCF pour utiliser le service. Comme:
Et puis vous pouvez le consommer dans votre contrôleur:
Et de votre site web.config vous placez la configuration de votre point de terminaison:
http://restsharp.org/ est la réponse à vos questions. Je suis actuellement en train de l'utiliser dans une application qui a une structure similaire.
Mais, plus généralement, à l'aide de WebAPI est seulement l'affichage et la demande de données comment le processus est à vous. Vous pouvez même utiliser la norme WebRequest et JavascriptSerializer.
Acclamations.
WebRequest
etJavascriptSerializer
sont maintenant de la vieille école Api à l'intérieur de la pile. La nouvelleHttpClient
est le chemin à parcourir. Il fournit OOTB prise en charge du formatage ainsi si vous installez Microsoft.AspNet.WebApi.Client package NuGet et il va effectuer le JSON de sérialisation et de désérialisation en utilisant Json.NET.Dans ce cas, vous pouvez utiliser HttpClient de consommer de l'API Web à partir de votre contrôleur.