Utiliser oData avec MVC4 WebAPI

 01/01/2019 |   Admin |  C#


Par défaut WebAPI retourne une liste de type IEnumerable.

L'avantage d'utiliser des requetes au format oData est de pouvoir "requéter" directement dans l'url (order by, top, ...).

Pour activer oData il suffit juste de remplacer IEnumerable par IQueryable.

Ne pas oublier l'attribut [Queryable] pour que le client puisse utiliser les requetes oData

[AcceptVerbs("GET")]
[Queryable]
public IQueryable<Contact> GetAll()
{
List<Contact> contacts = new List<Contact>();
  
Contact ct1 = new Contact ()
{
Name = "Pierre",
PictureUrl = http://www.serveur.com/images/pierre1.jpg
};
  
Contact ct2 = new Contact ()
{
Name = "Paul",
PictureUrl = http://www.serveur.com/images/paul1.jpg
};
  
Contact ct3 = new Contact ()
{
Name = "Jacques",
PictureUrl = http://www.serveur.com/images/jacques1.jpg
};
  
 
contacts.Add(ct1);
contacts.Add(ct2);
contacts.Add(ct3);
  
return contacts.AsQueryable<Contact>();
}

On peut maintenant utiliser ce genre de requetes : http://localhost:1003/api/contacts?$orderby=name desc

Lire >>

  • 1