OK, c'est parti. Je vais décrire deux façons pour le faire, les plus faciles:
1. ASP.NET WebApi
Vous devez créer un nouveau projet ASP.NET MVC4 (que ce soit libérer ou RC), sélectionnez le « WebAPI » comme une option:
Et vous aurez le modèle prêt. Maintenant, vous faites un clic droit dossier 'contrôleurs, puis Ajouter -> Contrôleur:
et le remplir par exemple comme ça:
public class ActualResourceController : ApiController
{
public string Get()
{
return "Hey there! Getting the resource...";
}
}
routes par défaut sont Global.asax, quand vous allez à la définition de la méthode WebApiConfig.Register(...)
, vous verrez que la route par défaut est host/api/controller
. Essayons sur, lorsque vous démarrez le projet et passer sous (dans mon cas, le port est choisi automatiquement par le serveur de développement) http://localhost:23030/api/ActualResource
vous obtiendrez:
<string>Hey there! Getting the resource...</string>
WebAPI retourne JSON ou XML en fonction de l'en-tête Accept
, si vous voulez que JSON soit le seul/par défaut, prenez a look at this link.
Vous pouvez bien sûr créer une classe et la renvoyer, elle sera sérialisée en XML/JSON d'une manière similaire voir ci-dessous avec ServiceStack.
2. ServiceStack
Maintenant, le ServiceStack est puissant, open-source-cadre de services Web REST. Cela fonctionne un peu différemment de WebApi, et voici une introduction rapide (bien que la documentation soit bonne):
Créez le projet ASP.NET MVC normal (dans mon cas, MVC4) - vous aurez un template vide:
Puis le feu de la console package Manager et le type (comme la documentation suggère) Install-Package ServiceStack.Host.Mvc
, qui vous permet d'obtenir un modèle de projet ServiceStack avec une application tutoriel et ce que vous pouvez par la suite supprimer si vous le souhaitez.
Mais tout d'abord, le ServiceStack fonctionne sur les objets DTO, les objets Request-Response. Alors créons-les, la classe ActualResource
qui servira de demande et ActualResourceResponse
qui sera une réponse. Puisque vous n'avez aucun paramètre dans une demande, le premier est trivial:
public class ActualResource
{
}
Tous les paramètres seraient des propriétés automatiques. Maintenant, la réponse:
public class ActualResourceResponse
{
public string ResourceName { get; set; }
}
Et la classe de service lui-même:
public class ActualResourceService : Service
{
public object Get(ActualResource request)
{
return new ActualResourceResponse {
ResourceName = "Hi! It's the resource name." };
}
}
Vous pouvez bien retourner nu cours string
pour vos besoins actuels, cela fonctionnerait tout de même.
Maintenant, dans le modèle ServiceStack crée, tout se passe dans le fichier AppHost.cs, nous allons jeter un coup d'oeil et de le modifier un tout petit peu:
Routes
.Add<Hello>("/hello")
.Add<Hello>("/hello/{Name*}")
.Add<Todo>("/todos")
.Add<Todo>("/todos/{Id}") //everything up to here are a template/tutorial routes, you can safely remove them
.Add<ActualResource>("/actualResource"); //and here you add a route to your own service
Pour que cela fonctionne, vous devez aller à Global. asax et commenter toute la ligne WebApiConfig.Register(GlobalConfiguration.Configuration)
, puis allez dans la méthode RouteConfig.RegisterRoutes
et ajouter:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("api/{*pathInfo}"); // <<<---- this line
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Un peu plus de plomberie est nécessaire, mais il est quand même pas mal.
Maintenant, lorsque vous démarrez le service, rendez-vous sous localhost:whateverport/api/actualResource
, vous obtiendrez la chaîne familière, et voici une capture d'écran:
ServiceStack peut sérialiser à divers formats, donc si vous allez sous http://localhost:yourPort/api/actualResource?format=json
, vous ll se:
{"resourceName":"Hi! It's the resource name."}
si ?format=xml
, puis:
<ActualResourceResponse>
<ResourceName>Hi! It's the resource name.</ResourceName>
</ActualResourceResponse>
Et ainsi de suite ...
Maintenant, la configuration de ServiceStack est un peu plus compliquée, mais elle prend en charge, par ex. Memcache hors de la boîte, vous pouvez utiliser Redis, vous pouvez utiliser différents fournisseurs d'authentification, tout cela peut être très utile dans certains scénarios. Mais, comme l'oncle Ben a dit une fois, « avec une grande puissance vient une grande responsabilité », et un peu plus difficile phase de configuration ...
Maintenant, vous pouvez choisir celui que vous avez envie, ces deux sont les options les plus simples en ce moment A MON HUMBLE AVIS. Bien sûr, ce n'est qu'un simple tutoriel pour vous aider à démarrer, vous aurez l'occasion d'explorer ce sujet en profondeur lorsque vous vous lancerez dans le projet.
Je suppose que ça va être un service REST, écrit en C#. Quel type de service est utilisé ici? ASP.NET WebApi? Pile de service? Ou peut-être même ASP.NET MVC? Si rien de tout cela ne vous tente, vous êtes en train de réinventer la sensation et la douleur qui vont avec ... :) –
Vous voudrez probablement créer un service WCF qui sera installé sur le serveur et répondra aux demandes de votre côté client javascript. Si personne ne vous donne une réponse décente, je vais essayer de poster un exemple de code complet plus tard ce soir si j'ai le temps. Le lien suivant vous donne un pas à pas étape par étape et vaut la peine de lire (il est un peu long) http://msdn.microsoft.com/en-us/library/dd203052.aspx –
Je recommanderais d'utiliser ASPIC.NET Web API pour une API REST facile à développer qui peut être appelée à partir de JavaScript/JQuery. ASP.NET Web API est un effort conjoint des équipes ASP.NET et WCF et représente l'orientation future des services Web RESTful. Un tutoriel complet sur la façon de créer le service Web et le JavaScript pour l'appeler peut être trouvé ici http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial- your-first-web-api –