Blog

Domine a plataforma e otimize seus gastos!

Ajustando URLs de Paginação no Azure API Management

Ajustando URLs de Paginação no Azure API Management
October 9, 2024

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.

Agendar a revisão gratuita do meu ambiente

Share this post

Inscreva-se para novas postagens

Inscreva-se