...
Em relação ao filtro informado, serão capturadas todas as requisições que possuírem um parâmetro Path "/normal" e um parâmetro Query "fields" com qualquer conteúdo (*).
Dica |
---|
|
Para PATH com valor obrigatório informe ?* (interrogação seguido de asterisco), que determina que o PATH tem ao menos 1 caracter qualquer (?), seguido de 0 ou mais caracteres (*). Exemplo: "/normal/?*/", #--# Path Param obrigatório a ser filtrado #--# |
Bloco de código |
---|
|
CALL _ADVPL_add_rest_logix_routes("GET",
"/*",
"order=dimensao",
"wms_v1_get_dimensoes_ordenado") |
Neste exemplo, está sendo definido uma outra rota, sendo que toda requisição de método GET, que contenha qualquer parâmetro Path ("/*" indica "Todos Paths" ou "nenhum") e um parâmetro Query "order" com valor "dimensao" será direcionada para a função wms_v1_get_dimensoes_ordenado.
...
Informações |
---|
Algumas considerações sobre o uso de roteamento através da função _ADVPL_add_rest_logix_routes(): - Os roteamentos devem ser definidos sempre do mais específico (detalhado) para o mais genérico (simples).
- O Logix REST utiliza a função Match() do ADVPL, que basicamente permite o uso do sinal "?" (interrogação) como coringa para uma determinada posição determina um único caracter obrigatório e o sinal "*" (asterisco) para um conjunto de caracteres variáveis (zero ou mais caracteres). Neste caso, quando houver necessidade de ter ao menos 1 caracter obrigatório, deve-se informar "?*" que determinará "1 ou mais caracteres" e quando informar "*" (apenas asterisco) determinará "0 ou mais caracteres". Para mais detalhes acesse a documentação da função Match().
- Podem ser definidos um ou mais parâmetros de pesquisa utilizando a "," (vírgula) como separador e a pesquisa sempre será realizada utilizando o operador AND.
Exemplo:CALL _ADVPL_add_rest_logix_routes("GET",
"/*",
"order=dimensao,cliente=*",
"wms_v1_get_dimensoes_ordenado") Veja que o parâmetro QUERY foi repassado como "order=dimensao,cliente=*" onde existem 2 filtros separados por uma vírgula, sendo:
FILTRO 1: order=dimensao FILTRO 2: cliente=* |
...