9 votes

Possibilité de créer un service web REST avec ASP.NET 2.0

Est-il possible de créer un service web REST en utilisant ASP.NET 2.0 ? Les articles et les billets de blog que je trouve semblent tous indiquer que ASP.NET 3.5 avec WCF est nécessaire pour créer des services Web REST avec ASP.NET.

S'il est possible de créer des services web REST en ASP.NET 2.0, pouvez-vous fournir un exemple ?

Gracias.

5voto

Nathan Lee Points 1127

J'ai effectivement créé un service web REST avec asp.net 2.0. Ce n'est pas vraiment différent de la création d'une page web.

Quand je l'ai fait, je n'avais pas vraiment le temps de chercher comment le faire avec un fichier asmx, alors je l'ai fait dans un fichier aspx standard. Je sais qu'il y a des frais généraux supplémentaires en procédant de cette façon, mais pour une première révision, c'était bien.

protected void PageLoad(object sender, EventArgs e)
{
    using (XmlWriter xm = XmlWriter.Create(Response.OutputStream, GetXmlSettings()))
    {
        //do your stuff
        xm.Flush();
    }
}

    /// <summary>
    /// Create Xml Settings object to properly format the output of the xml doc.
    /// </summary>
    private static XmlWriterSettings GetXmlSettings()
    {
        XmlWriterSettings xmlSettings = new XmlWriterSettings();
        xmlSettings.Indent = true;
        xmlSettings.IndentChars = " ";
        return xmlSettings;
    }

Cela devrait suffire à vous faire démarrer, je vais essayer d'en poster davantage plus tard.

De même, si vous avez besoin d'une authentification de base pour votre service web, c'est possible, mais cela doit être fait manuellement si vous n'utilisez pas Active Directory.

2voto

jdiaz Points 2199

Il est tout à fait possible de créer des services web RESTful à l'aide d'ASP.NET. Si vous démarrez un nouveau projet, je vous conseille vivement de créer des services Web RESTful à l'aide de WCF. La version 3.5 de .NET Framework vous permet de spécifier un point de terminaison RESTful en même temps qu'un bon vieux point de terminaison SOAP et de fournir le même service.

Tout ce que vous avez à faire est d'activer un comportement de point de terminaison qui appelle <webHttp />

Voici une bonne série sur la création de services web RESTful à l'aide de WCF :

http://blogs.msdn.com/bags/archive/2008/08/05/rest-in-wcf-blog-series-index.aspx

1voto

Ubiguchi Points 2145

Vous pouvez certainement créer des services web RESTful en ASP.NET 2.0, pour les raisons suivantes exemple Mais il n'existe pas d'API de haut niveau pour faire tout le travail de l'âne à votre place, comme c'est le cas avec WCF dans .NET 3.5.

1voto

Joel Coehoorn Points 190579

Bien sûr, vous pouvez toujours implémenter la spécification vous-même. C'est juste qu'il n'y a rien d'intégré pour le supporter. Si vous utilisez la solution de Nathan Lee, faites-le comme un gestionnaire http (.ashx) plutôt que comme un aspx. Vous pouvez tout simplement copier/coller son code dans un nouveau fichier de gestionnaire.

1voto

FlySwat Points 61945

Vous pouvez facilement réaliser des services web RESTful en implémentant la spécification à l'aide de IHTTPHandlers.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X