Recentemente, me deparei com um desafio em um projeto que estava desenvolvendo: o JSON de resposta da API trazia os links de paginação, porém esses links apontavam para a URL do host original, e não para o Azure API Management (APIM), que era o gateway correto que deveria ser utilizado pelos consumidores da API.
Após analisar as possíveis soluções, encontrei uma maneira simples e eficiente de ajustar isso utilizando um recurso nativo do Azure API Management. A seguir, vou compartilhar os detalhes e como você pode fazer o mesmo no seu ambiente.
O Problema
Ao retornar uma lista paginada de resultados de uma API, é comum incluir os links de navegação para as próximas páginas. No entanto, os links retornados estavam usando a URL original da API, em vez da URL exposta pelo Azure API Management. Isso pode causar problemas quando consumidores externos utilizam o APIM como o único ponto de contato com a API.
A Solução
O Azure API Management oferece um recurso nativo para manipular e ajustar as URLs de resposta, sem precisar modificar o código da aplicação ou API em si. Utilizando as políticas de transformação de conteúdo, podemos interceptar o JSON de resposta e reescrever os links de navegação conforme necessário.
Passo a Passo
1. Configurando a Política de Transformação
No portal do Azure, navegue até o seu serviço do Azure API Management e vá até a API que precisa da correção nas URLs de navegação.
- Acesse o editor de políticas e escolha a operação que retorna a resposta paginada.
- No bloco de políticas, adicione uma política de
inbound
para ajustar a URL.
Aqui está um exemplo de como essa política pode ser configurada:
<inbound>
<base />
<set-backend-service base-url="https://api.management.url" />
</inbound>
<outbound>
<base />
<redirect-content-urls />
</outbound>
2. Ajustando a URL no JSON de Resposta
A parte mais importante é garantir que os links de next
e previous
sejam ajustados para o APIM. Utilizando o método redirect-content-urls
, podemos reescrever a URL base da resposta, direcionando os consumidores corretamente para o gateway.
3. Testando e Validando
Após aplicar as políticas, teste a API através do portal do Azure para garantir que os links estão corretos. Você verá que os links de navegação agora apontam para o Azure API Management em vez do host original.
Benefícios da Abordagem
- Sem alterações no código da aplicação: Essa solução é implementada diretamente no gateway, evitando a necessidade de modificar a lógica da API.
- Escalabilidade: O mesmo padrão pode ser aplicado para outras APIs ou endpoints de forma fácil e centralizada.
- Manutenção Simplificada: Qualquer ajuste nas URLs ou no padrão de resposta pode ser feito diretamente no Azure APIM.
Conclusão
Esse método de ajuste de URLs de navegação paginada no Azure API Management demonstra o poder e a flexibilidade das políticas nativas do APIM. Sem a necessidade de tocar no código da API, conseguimos garantir que os consumidores externos tenham a experiência correta ao navegar pelos dados paginados.
Se você estiver enfrentando um problema semelhante, recomendo experimentar esse recurso nativo do Azure API Management. É uma solução prática e eficiente para manipular as respostas da API de forma dinâmica.