Pular para o conteúdo principal

Personalizar consultas do OData

Tanto o serviço do OData centrado em ativos quanto o serviço de modelagem de dados do OData oferecem suporte a consultas personalizadas para filtrar propriedades e recuperar conjuntos de dados específicos.

Personalizar URLs de consultas

Exemplo de serviço do OData centrado em ativos

Para filtrar por uma propriedade do tipo de recurso:

GET .../{resourceType}/?$filter={Filter}

Onde:

  • {resourceType}: um tipo de recurso, como Assets, TimeSeries, Events, etc.
  • {Filter}: a expressão do filtro do OData.

Exemplo de serviço do OData de modelagem de dados

Para filtrar por uma propriedade de view em um modelo de dados:

GET .../{view}/?$filter={Filter}

Onde:

  • {view}: o nome de view no seu modelo de dados.
  • {Filter}: a expressão do filtro do OData.

Exemplos de consulta personalizada

Filtro de igualdade simples

Um filtro de igualdade usa o formato AttributeName eq 'AttributeValue':

GET .../Assets?$filter=Name eq '23-TE-96116-04'

Filtragem de modelagem de dados

Um filtro aplicado diretamente a uma propriedade de view de modelo de dados:

GET .../City?$filter=iso2 eq 'MX'

Filtragem de metadados

Para metadados, a filtragem é executada em propriedades aninhadas dentro do objeto de metadados:

GET .../Assets?$filter=MetaData/RES_ID eq '525283'

Filtro combinado

GET .../Assets?$filter=MetaData/RES_ID eq '525283' and Name eq '23-TE-96116-04'

Uso de funções em filtros

O OData e compatível com funções como startswith, endswith e contains.

Por exemplo, para filtrar séries temporais em que ExternalId começa com 'Sensor':

GET .../TimeSeries?$filter=startswith(ExternalId,'Sensor')

Observação: nem todas as funções são compatíveis com envio para CDF. Verifique as competências de filtragem do tipo específico de recurso.

Combinação de vários parâmetros de consulta

Você pode combinar várias opções de consulta para refinar a recuperação de dados.

Por exemplo, para recuperar ativos em que Name começa com 'Pump', selecione apenas Id e Name, e classifique por Name:

GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc

Depuração de consultas personalizadas

  • Use ferramentas separadas: ferramentas como o Fiddler permitem que você inspecione o tráfego de HTTP entre o seu cliente e o servidor.
  • Verifique a sintaxe do filtro: garanta que seus filtros estejam corretamente formatados de acordo com a especificação do OData.
  • Revise os filtros compatíveis: consulte Filtrar itens nos modelos de dados e Filtragem de tipos de recursos centrados em ativos para saber sobre as competências de filtragem compatíveis com os serviços do OData.

Limitações

Nem todas as funções e funcionalidades de OData são compatíveis. Para obter informações detalhadas sobre as funcionalidades compatíveis e limitações, consulte a documentação do serviço individual.