Os filtros de API permitem adicionar lógica personalizada a uma API sem alterar sua implementação principal. Um pré-filtro é executado antes do processamento da requisição recebida, possibilitando redefinir parâmetros, validar entradas ou injetar contexto. Já o pós-filtro atua após o retorno dos resultados, permitindo transformar, enriquecer ou mascarar a resposta.
Funcionamento dos filtros de API
O DataService Studio oferece suporte a funções Aviator e Python. Utilize o DataService Studio para crie funções, testar, publicar e usar funções e publicar funções. Após a publicação, associe a função a uma API para utilizá-la como filtro. Essa abordagem permite atender a diferentes requisitos de consulta e se adaptar a cenários de negócios sem modificar a lógica central da API. Para mais detalhes, consulte Usar uma função como filtro de API.
O pré-filtro preprocessa os parâmetros de requisição antes que a API processe a chamada.
O pós-filtro transforma os resultados retornados pela API após o processamento da chamada.
Para exemplos de código de cenários comuns, consulte Melhores práticas: Usar uma função Aviator como filtro.
Requisitos
O pré-filtro e o pós-filtro de uma API devem utilizar o mesmo tipo de função: ambos Aviator ou ambos Python. Não há suporte para a combinação de tipos diferentes de função no pré-filtro e no pós-filtro da mesma API.
-
Por motivos de segurança e desempenho, as funções Aviator devem ser executadas em um grupo de recursos exclusivo para DataService Studio.
Ao editar ou testar uma função, anexe um grupo de recursos exclusivo para DataService Studio a ela. Para obter mais informações, consulte Crie uma função.
Durante o desenvolvimento de uma API, caso você ative um filtro e associe uma função de destino, anexe um grupo de recursos exclusivo para DataService Studio à API. Para obter mais informações, consulte Gerar uma API na interface sem código.
Limitações
O recurso de filtro requer o DataWorks Basic Edition ou uma versão posterior.
As funções Python estão passando por uma atualização. No momento, não é possível crie, clonar ou publicar novas funções Python. Utilize o tipo de função Aviator como alternativa. Para mais informações, consulte Crie uma função Aviator.