Publié jeudi 22 avril 2010 23:50 par Audrey

[OData] Créer et exposer son propre flux OData

OData (Open Data Protocol) est un protocole qui permet d'exposer des données via HTTP pour différents types de clients (RIA, Web, Mobile, etc...) afin de pouvoir utiliser et modifier ces données à distance. Ces données sont alors requêtable avec Linq depuis le client.

Grâce à WCF RIA Services, il est possible d'exposer ses propres données facilement. Lors de l'ajout d'un DomainService, il suffit de cocher la case "Expose OData endpoint", et les données des tables sélectionnées pourront être exposées. Dans notre exemple, on utilise les tables Customers et Orders de la base de données Northwind.




Le fait de cocher cette case apporte les modifications suivantes à notre code :
  • Dans le DomainService, chaque méthode sans paramètre possède désormais un tag :
[Query(IsDefault = true)]
public IQueryable<Customers> GetCustomers()
{
  return this.ObjectContext.Customers;
}


  • Dans le Web.Config, un endpoints est ajouté dans les domainServices :
<system.serviceModel>
  <domainServices>
      <endpoints>
         <add name="OData"
              type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory,
                    System.ServiceModel.DomainServices.Hosting.OData,
                    Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
/>
      </endpoints>
  </domainServices>
</system.serviceModel>



Il suffit ensuite de lancer l'application, et dans le navigateur Internet d'appeler l'adresse qui est composée de cette façon :

http://localhost:1234/NomDeLaSolution-Web-NomDuDomainService.svc/OData/

A noter que si le nom de votre solution et/ou de votre DomainService contiennent des points ".", il faut les remplacer par des tirets "-".

Dans notre exemple cela donne cette adresse : http://localhost:2321/RIAOData-Web-NorthwindService.svc/OData/

Et l'on obtient la liste de l'ensemble de tables que l'on avait sélectionné auparavant :




Si l'on souhaite consulter les données d'une table, Customers par exemple, il suffit de compléter l'adresse avec le nom de la table que l'on souhaite parcourir : 

http://localhost:1234/NomDeLaSolution-Web-DomainService.svc/OData/CustomersSet/

Comme les données sont formatées au format ATOM, le navigateur essaye de les afficher comme un flux RSS. Il suffit alors de faire un clic-droit sur la page et de demander à afficher la source de la page pour voir apparaître les données de la table Customers :



Pour voir plusieurs types de données exposés grâce à OData, une liste de quelques flux est disponible sur le site OData.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

# re: [OData] Créer et exposer son propre flux OData @ vendredi 23 avril 2010 02:19

Mince, j'avais 4 etapes sur mon article, tu en as qu'une ;)

Pour ceux qui veulent encore moins "mettre les mains dans le code" :).

stumpy


Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01