1) Télécharger les librairies qui vont bien : un NuGet en cherchant : "ServiceStack.ServiceInterface".
2) Dans un namespace de votre lib ou du site Web : Fichier AppHost.cs
Classe qui dérive de AppHostBase et qui permet l'initialisation des web Services
Le constructeur à surcharger fait tout le boulot en une ligne !
public AppHost()
: base("Ma librairie HttpListener", typeof(AppHost).Assembly)
{
}
3) Dans AppHost Toujours : override de la méthode Configure pour définir le comportement des Web services : Ajout de chaînes de connexions aux bases, entête http, compression, ...
4) Les web services : Je fais toujours un dossier par Web Service avec 3 classes : La classe Request, la classe Response, la classe web service
5) La request : Classe qui gère les paramètres d'appel à un ou plusieurs Web services
doit contenir les attributs suivants :
- [Api("Nom de l'api")] pour indiquer dans quel groupe d'api se trouve le web service
- [Route("Url du Web service avec paramètres obligatoires", vers = "GET, POST, PUT, ...")] pour indiquer l'url du web service et les verbes auquel il doivent répondre :
L'attribut Route peut être mis autant de fois que nécessaire (Permet d'avoir différentes URL en fonction des besoins, ou rendre des paramètres obligatoires en fonction du verbe utilisé)
Les paramètres obligatoires de l'URL doivent être entre accolades exemple :
[Route("/commandeGet/{ApiKey}/", Verbs = "GET")] ici ApiKey doit correspondre à une propriété de la classe request.
Il faudra programmer une méthode pour chaque verbe Http déclaré ici dans la classe service.
De plus il est pas mal (mais optionnel) d'indiquer ce que retourne le Web Service en ajoutant l'interface IReturn<>
public class MaClasseRequest : IReturn<MaClasseResponse>
6) La response : Classe qui contient les données de la réponse. Rien à signaler de plus sur cette classe !
7) Le service : Classe qui contient les méthodes de traitement des Web Services :
Exemple : public object Get(MaClasseRequest request)
Le nom de la méthode est le nom du verbe HTTP utilisé (Attention à la casse : dans le Request c'est en majuscule, ici c'est en Camel Upper Name)
Le paramètre de la méthode est le nom de la classe Request définie
Le type de retour est object car on retourne soit une Response soit une HttpErrror !
La classe service doit dériver de la classe Service de ServiceStack.ServiceInterface
Aucun commentaire:
Enregistrer un commentaire