Compartilhar via


Tutorial: Transformar e proteger sua API

APLICA-SE A: todas as camadas do Gerenciamento de API

Neste tutorial, você aprende a configurar políticas para proteger ou transformar sua API. As políticas são um conjunto de instruções executadas em sequência, na solicitação ou na resposta de uma API que modifica o comportamento da API'S.

Por exemplo, talvez você queira definir um cabeçalho de resposta personalizado. Ou proteger sua API de back-end configurando uma política de limite de taxa para que a API não seja superutilizada pelos desenvolvedores. Esses exemplos são uma introdução simples às políticas de Gerenciamento de API. Para obter mais opções de política, consulte Políticas de Gerenciamento de API.

Observação

Por padrão, o Gerenciamento de API configura uma política global forward-request. A política forward-request é necessária para que o gateway conclua uma solicitação para um serviço de back-end.

Neste tutorial, você aprenderá a:

  • Transformar uma API para definir um cabeçalho de resposta personalizado
  • Proteger uma API adicionando uma política de limite de taxa (limitação)
  • Testar as transformações

Captura de tela das políticas do Gerenciamento de API no portal.

Pré-requisitos

Navegar até a instância de Gerenciamento de API

  1. No portal do Azure, pesquise e selecione serviços de Gerenciamento de API.

    Selecione Serviços de Gerenciamento de API

  2. Na página Serviços de Gerenciamento de API, selecione a sua instância de Gerenciamento de API.

    Selecione a sua instância de Gerenciamento de API

Testar a resposta original

Para ver a resposta original:

  1. Em sua instância de serviço do Gerenciamento de API, selecione APIs.
  2. Selecione Swagger Petstore na lista de APIs.
  3. Selecione a guia Testar na parte superior da tela.
  4. Selecione a operação GET Finds pets by status e, opcionalmente, selecione um valor diferente do status Parâmetro de consulta. Selecione Enviar.

A resposta original da API deve se parecer com a seguinte resposta:

Captura de tela da resposta da API no portal.

Transformar uma API para adicionar um cabeçalho de resposta personalizado

O Gerenciamento de API inclui várias políticas de transformação que você pode usar para modificar conteúdos de solicitação ou resposta, cabeçalhos ou códigos de status. Neste exemplo, você define um cabeçalho de resposta personalizado na resposta da API.

Definir a política de transformação

Esta seção mostra como configurar um cabeçalho de resposta personalizado usando a política set-header. Aqui você usa um editor de política baseado em formulário que simplifica a configuração da política.

  1. Selecione Swagger Petstore>Design>Todas as operações.

  2. Na seção Processamento de saída, selecione + Adicionar política.

    Captura de tela da navegação para a política de saída no portal.

  3. Na janela Adicionar política de saída, selecione Definir cabeçalhos.

    Captura de tela da configuração de uma política de Definir cabeçalhos no portal.

  4. Para configurar a política de Definir cabeçalhos, faça o seguinte:

    1. Em Nome, insira Personalizado.
    2. Em Valor, selecione + Adicionar valor. Insira "Meu valor personalizado".
    3. Selecione Salvar.
  5. Após a configuração, um elemento de política set-header aparece na seção Processamento de saída.

    Captura de tela das políticas de saída Definir cabeçalhos no portal.

Proteger uma API adicionando a política de limite de taxa (limitação)

Esta seção mostra como adicionar proteção à API de back-end configurando limites de taxa para que a API não seja excessivamente utilizada pelos desenvolvedores. Este exemplo mostra como configurar a política rate-limit-by-key usando o editor de código. Neste exemplo, o limite é definido como três chamadas por 15 segundos. Depois de 15 segundos, um desenvolvedor pode repetir a chamada à API.

Observação

Essa política não tem suporte na camada Consumo.

  1. Selecione Swagger Petstore>Design>Todas as operações.

  2. Na seção Processamento de entrada, selecione o ícone do editor de código (<\>).

    Captura de tela da navegação para o editor de código de política de entrada no portal.

  3. Posicione o cursor dentro do elemento <inbound> em uma linha em branco. Em seguida, selecione Mostrar snippets no canto superior direito da tela.

    Captura de tela da seleção mostrando snippets no editor de política de entrada no portal.

  4. Na janela à direita, em Políticas de restrição de acesso, clique em Limitar taxa de chamada por chave.

    O elemento <rate-limit-by-key /> é adicionado ao cursor.

    Captura de tela da inserção da taxa de chamada de limite por política de chave no portal.

  5. Modifique o código <rate-limit-by-key /> no elemento <inbound> para o seguinte código. Em seguida, selecione Salvar.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Testar as transformações

Nesse ponto, se você examinar o código no editor de códigos, suas políticas serão semelhantes ao código a seguir:

<policies>
     <inbound>
         <rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
         <base />
     </inbound>
     <outbound>
         <set-header name="Custom" exists-action="override">
             <value>"My custom value"</value>
           </set-header>
         <base />
     </outbound>
     <on-error>
         <base />
     </on-error>
 </policies>

O restante desta seção testa as transformações de política que você definir neste artigo.

Testar o cabeçalho de resposta personalizado

  1. Selecione Swagger Petstore>Testar.

  2. Selecione a operação GET Finds pets by status e, opcionalmente, selecione um valor diferente do status Parâmetro de consulta. Selecione Enviar.

    Como você pode ver, o cabeçalho de resposta personalizado é adicionado:

    Captura de tela mostrando cabeçalhos de resposta personalizados no portal.

Testar o limite de taxa (limitação)

  1. Selecione Swagger Petstore>Testar.

  2. Selecione a operação GET Finds Pets by Status. Selecione Enviar várias vezes seguidas.

    Depois de enviar muitas solicitações no período configurado, você obtém a resposta 429 Solicitações Demais.

    Captura de tela mostrando Muitas Solicitações na resposta no portal.

  3. Aguarde 15 segundos ou mais e selecione Enviar novamente. Neste momento, você deve obter uma resposta 200 OK.

Resumo

Neste tutorial, você aprendeu a:

  • Transformar uma API para definir um cabeçalho de resposta personalizado
  • Proteger uma API adicionando uma política de limite de taxa (limitação)
  • Testar as transformações

Próximas etapas

Prosseguir para o próximo tutorial: