Una volta capito come selezionare solo un set di proprietà, vediamo come possiamo recuperare elementi dai contenuti presenti su SharePoint 2013, in base ad uno o più filtri. La querystring di riferimento questa volta è la querystring "$filter", che va utilizzata assieme ad una serie di operatori logici che ci danno la possibilità di specificare i nostri criteri di filtro.
Vediamo quali sono gli operatori che abbiamo a disposizione.
Per comparazioni su numeri:
- Lt - Less than
- Le - Less than or equal
- Gt - Greater than
- Ge - Greater than or equal
- Eq - Equal
- Ne - Not equal
Per vedere un esempio d'utilizzo di questi operatori, provate a richiamare con il vostro browser la seguente URL (da utilizzare per recuperare tutte le document library di un sito SharePoint 2013):
http://[siteurl]/_api/web/lists?$filter=BaseTemplate eq 101
Per comparazioni di stringhe:
- startsWith
- substringOf
- Eq - Equal
- Ne - Not equal
Per vedere un esempio d'utilizzo di questi operatori, provate a richiamare con il vostro browser la seguente URL (da utilizzare per recuperare tutte le liste il cui titolo inizia con la parola "Shared"):
http://[siteurl]/_api/web/lists?$filter=startsWith(Title, 'Shared')
Per comparazioni su date:
- day(DateTime) - funzione che recupera il giorno a partire da una specifica data
- month(DateTime) - funzione che recupera il mese a partire da una specifica data
- year(DateTime) - funzione che recupera l'anno a partire da una specifica data
- hour(DateTime) - funzione che recupera l'ora a partire da una specifica data
- minute(DateTime) - funzione che recupera i minuti a partire da una specifica data
- second(DateTime) funzione che recupera i secondi a partire da una specifica data
Per vedere un esempio d'utilizzo di questi operatori, provate a richiamare con il vostro browser la seguente URL (da utilizzare per recuperare tutte le liste create a maggio):
http://[siteurl]/_api/web/lists?$filter=month(Created) eq 5
Nel caso in cui volessimo invece concatenare due o più filtri invece, ci basta solamentae aggiungere una nuova querystring di tipo $filter alla nostra URL:
http://[siteurl]/_api/web/lists?$filter=(BaseTemplate eq 101) and (startswith(Title, 'Shared'))
Facile no?
Utilizzando questa interfaccia, capirete che avrete bisogno sicuramente di una libreria che vi aiuta nella composizione di queste URL, onde evitare di fare concatenazioni di stringhe una dietro l'altra.
UPDATE: Aggiornata la sintassi per i filtri multipli (leggere qui i dettagli)