Sumário



Objetivo



As APIs expostas no RM.Host, suportam filtros no padrão ODATA. A seguir, serão mostrados alguns exemplos de utilização.

1 - Exemplos de filtro no padrão ODATA


Veja a seguir exemplos de filtros no padrão odata.


OperadorDescriçãoExemplo
Logical Operators
eqEqual/Suppliers?$filter=Address/City eq 'Redmond'
neNot equal/Suppliers?$filter=Address/City ne 'London'
gtGreater than/Products?$filter=Price gt 20
geGreater than or equal/Products?$filter=Price ge 10
ltLess than/Products?$filter=Price lt 20
leLess than or equal/Products?$filter=Price le 100
andLogical and/Products?$filter=Price le 200 and Price gt 3.5
orLogical or/Products?$filter=Price le 3.5 or Price gt 200
notLogical negation/Products?$filter=not endswith(Description,'milk')
Grouping Operators
( )grouping/Products?$filter=(Price lt 5)


Ao utilizar campos do tipo data é importante saber:


Quando o filtro do tipo datetimeoffset usa um valor de timezone positivo (fuso horário positivo) pode acontecer de retornar uma exceção pois o + (mais) tem um significado diferente, quando usado em uma URL, sendo codificado automáticamente por um espaço em branco.

Para corrigir isso, é necessário utilizar uma codificação especial.
Substitua o "+" por "%2b"

Por exemplo:
2014-07-07T15:32:15+03:00 => 2014-07-07T15:32:15%2b03:00


1.2 - Aplicação


Para contextualizar o uso dos filtros, utilizamos a API de usuários como exemplo.

Para filtrar todos os usuários que tem a data de criação igual a  "2014-07-07T18:32:15Z", a seguinte requisição será feita:

http://localhost:8051/api/framework/v1/users?$filter=(meta.created eq 2014-07-07T18:32:15Z)