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.

  1. Acesse o editor de políticas e escolha a operação que retorna a resposta paginada.
  2. 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.
Azure API Management policy reference - redirect-content-urls
Reference for the redirect-content-urls policy available for use in Azure API Management. Provides policy usage, settings, and examples.
Azure API Management policy reference - find-and-replace
Reference for the find-and-replace policy available for use in Azure API Management. Provides policy usage, settings, and examples.

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.

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post