Création d'un service Web REST documenté basé sur Windows Appliquer un cache de sortie à une méthode Web

Le kit fourni également, un autre attribut WebCache qui permet d'appliquer un cache de sortie à une méthode Web, à l'image des Web Services ASMX ou des pages Web ASP.net.


Voici le code de l'implémentation :


  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel.Activation;
using System.ServiceModel;
using Microsoft.ServiceModel.Web;
using System.Net;


namespace WebApp.Svc
{
[AspNetCompatibilityRequirements(RequirementsMode=
AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Multiple,
InstanceContextMode=InstanceContextMode.PerCall,
Namespace=http://www.djdsoft.com/EssaiService/)]
public class EssaiService : IEssaiService
{
[OperationBehavior]
public string HelloWorld(string text)
{
if (string.IsNullOrEmpty(text))
throw new WebProtocolException(HttpStatusCode.BadRequest,
« Le parametre ne peut pas etre une chaine vide. »
, null);

return DateTime.Now + » > » + text.ToUpper();
}
}
}



On pourra constater qu'il n'y a strictement rien de différent par rapport à l'existant, sauf dans la gestion d'exception. Nous utilisons un type d'exception fournie par le WCF Starter Kit. Cette dernière va nous permettre de bénéficier d'une page d'erreur "user-friendly". Dans notre cas, cela devrait donner une page Web, de ce genre :


page d'erreur 'user-friendly'
Page d'erreur "user-friendly" © SQLI


Ce n'est pas si mal. L'utilisateur dispose désormais d'une page d'erreur claire. Il est possible de personnaliser cette page, pour cela je vous laisse regarder la doc du produit. Petite remarque, tout de même : les caractères accentués sont mal gérés. Espérons que cela sera résolu dans la version finale.