2009-09-21 6 views

Répondre

4

ASP.NET MVC est une bonne alternative en matière de génération XML REST et JSON nourrit.

2

Pour créer une architecture de repos dans .net, vous pouvez utiliser GenericHandlers. Vous pouvez créer un GenericHandler qui recevra un message HTTP (POST, GET ou ..) et retourner un message du type de contenu que vous spécifiez.

Par exemple, je crée un gestionnaire générique sur l'url:

http://site/getpeople.ashx?gender=female

et l'appeler avec le sexe Parmeter = féminin, comme au-dessus du gestionnaire renverra les éléments suivants

<people> 

<person>...</person> 
... 
<people> 

Et le type de contenu serait text/xml.

Ceci est la façon la plus simple à mettre en œuvre des services Web REST dans .NET

+0

L'utilisation de text/xml n'est pas recommandée depuis des années. L'utilisation d'application/xhtml + xml est désapprouvée dans les architectures de repos. Ne vaut pas une downvote, mais ne vaut pas le upvote original, je pense. – SerialSeb

+0

Pourriez-vous, s'il vous plaît, préciser pourquoi cela est mal vu? –

+1

Désolé pour le bordereau, devrait avoir lu l'application/xml. Il est désapprouvé parce qu'il n'expose pas le type de média réel au processeur UA, seulement une notion vague que c'est xml, ce qui ne permet pas de déterminer quoi faire avec le contenu. – SerialSeb

2

Je fournis également ServiceStack, moderne, code premier, DTO entraînés, les services Web de remplacement WCF cadre encourageant le code et les meilleures pratiques à distance pour créer des services Web REST DRY, performants et évolutifs.

Il n'y a pas de config XML, ou code-gen et votre service web C# one clean est activé automatiquement sur tous les points de terminaison JSON, XML, SOAP, JSV, CSV, HTML. Il inclut des clients génériques de service de synchronisation/asynchrone fournissant une passerelle de communication client/serveur rapide et typée de bout en bout.

Il comprend également generic sync/async service clients fournissant une passerelle de communication client/serveur rapide et typée de bout en bout.

Ceci est l'exemple complet de tout le code nécessaire pour créer un service Web simple, qui est automatiquement sans aucune configuration, enregistrée et disponible sur tous les web data formats on pre-defined and custom REST-ful routes:

public class Hello { 
    public string Name { get; set; } 
} 

public class HelloResponse { 
    public string Result { get; set; } 
} 

public class HelloService : IService<Hello> { 
    public object Execute(Hello request) { 
     return new HelloResponse { Result = "Hello, " + request.Name }; 
    } 
} 

Au-dessus de service peut être appelé (sans construire étapes/code-gen) en C# avec la ligne ci-dessous:

var response = client.Send<HelloResponse>(new Hello { Name = "World!" }); 
Console.WriteLine(response.Result); // => Hello, World 

Et en jQuery avec:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
});