IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Silverlight 4 + RIA Services - Prêt pour les affaires


précédentsommairesuivant

Traduction

Cet article est la traduction la plus fidèle possible de l'article original de Brad Abrams, Silverlight 4 + RIA Services - Ready for Business: Ajax Endpoint

Ajax Endpoint

Poursuivant notre série, je voulais aborder la façon dont un service RIA peut être exposé à votre service dans JSON. Cela est très pratique pour les clients Ajax.


La bonne chose est qu'en activant l'endpoint JSON cela ne nécessite AUCUN changement au Domain Service. Tout ce que vous avez à faire pour l'activer est d'ajouter l'endpoint JSON dans web.config

 
Sélectionnez
  1: <system.serviceModel>
  2:  <domainServices>
  3:    <endpoints>
  4:      <add name="JSON"
  5:          type="Microsoft.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, 
                  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  6:      <add name="OData"
  7:          type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, 
                  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  8:      <add name="Soap"
  9:          type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, 
                  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
 10:    </endpoints>
 11:  </domainServices>
 12:

Comme vous pouvez le constater, l'extrait ci-dessus montre l'ajout de l'endpoint JSON à partir du toolkit RIA Services aussi bien que ceux d'OData et SOAP.


Vous pouvez voir les résultats de l'endpoint en naviguant à l'adresse URL dans ce format :

http://localhost:21516/BusinessApplication1-web-DishViewDomainService.svc/Json/GetRestaurants

Image non disponible
 
Sélectionnez
{"GetRestaurantsResult":{"TotalCount":-2,"IncludedResults":[],
"RootResults":[{"Address":"49 Gilbert St.","City":"London",
"ContactName":"Charlotte Cooper","ContactTitle":"Purchasing Manager",
"Fax":"(171) 555-2222","HomePage":"","ID":1,"ImagePath":
"Restaurant_Alinea.jpg","Name":"Alinea - Updated from Ajax",
"Phone":"(171) 555-2222","PostalCode":"EC1 4SD","Region":""},
{"Address":"P.O. Box 78934","City":"New Orleans","ContactName":
"Shelley Burke",
"ContactTitle":"Order


Comme vous pouvez le constater - du JSON agréable à voir. Maintenant pour écrire un client Ajax très simple.

Ci-dessous un exemple de méthode de requête dans le client Ajax :

 
Sélectionnez
         function query() {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("GET", "BusinessApplication1-web-DishViewDomainService.svc/Json/GetRestaurants", false);
            xmlhttp.send();
            var rawResults = JSON.parse(xmlhttp.responseText);
            var results = rawResults.GetRestaurantsResult.RootResults;
            var entity
            for (var i = 0; i < results.length; i++) 
            {
                entity = results[i];
                document.getElementById('results').innerHTML += ' <br> ' + entity.Name;
            }
           
        }

Ceci est relié à un bouton très simple

 
Sélectionnez
<button type="button" onclick="query()">
            Query</button>
Image non disponible

La mise à jour est un peu plus compliquée, mais toujours basique :

 
Sélectionnez
        function update() {
            var operation = {};
            operation.Entity = { "__type": "Restaurant:#BusinessApplication1.Web", "ID": 1, "Name": "Alinea - Updated from Ajax"};
            operation.OriginalEntity = { "__type": "Restaurant:#BusinessApplication1.Web", "ID": 1, "Name": "Alinea" };
            operation.Operation = 3; //update
            var csData = JSON.stringify({ "changeSet": [operation] });
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open('POST', 'BusinessApplication1-web-DishViewDomainService.svc/Json/SubmitChanges', false);
            xmlhttp.setRequestHeader("Content-Type", "application/json");
            xmlhttp.send(csData);
            var results = xmlhttp.responseText;
            document.getElementById('results').innerHTML = results;
        }


Dans cette démo, nous avons montré comment activer le client Ajax/JSON pour RIA Services.

Conclusion

Ceci conclut la dixième partie de cette série. Dans la onzième partie nous verrons comment localiser nos applications métier.


précédentsommairesuivant

Copyright © 2012 Brad Abrams. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.