Exercício – Remover informações de cabeçalho

Concluído

Frequentemente, as empresas que publicam APIs Web precisam controlar cuidadosamente os cabeçalhos HTTP que suas APIs retornam, preferencialmente sem reescrever o código-fonte da API.

O governo decidiu compartilhar dados do censo com suas agências por meio de APIs RESTful. Os requisitos críticos são que os dados sejam compartilhados com segurança e possam ser corrigidos facilmente para facilitar uma integração rápida. Como desenvolvedor líder, você precisa criar um gateway de API. Você usa o gateway para publicar uma API RESTful Census que expõe um ponto de extremidade OpenAPI usando padrões de segurança modernos.

Aqui, você vai:

  • Publicar uma API RESTful de Censo.
  • Implantar um gateway do Gerenciamento de API.
  • Expor a API de Censo por meio do ponto de extremidade de gateway.
  • Remover um cabeçalho da resposta.

Importante

É preciso ter uma assinatura do Azure para fazer esse exercício, e isso pode gerar encargos. Caso ainda não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Implantar a API web do Censo

Você desenvolveu um aplicativo .NET Core que retorna informações confidenciais de censo. O aplicativo inclui o Swashbuckle para gerar a documentação da OpenAPI.

Para economizar tempo, vamos começar executando um script para hospedar nossa API de RESTful no Azure. O script executa as seguintes etapas:

  • Cria um plano do Serviço de Aplicativo do Azure na camada gratuita.
  • Cria uma API web dentro de um Serviço de Aplicativo do Azure, que é apara implantação do Git a partir de um repositório local.
  • Define credenciais de implantação no nível da conta para o aplicativo.
  • Configura o Git localmente.
  • Implanta a nossa API web na nossa instância do Serviço de Aplicativo.
  1. Entre no portal do Azure.

  2. Na barra de tarefas do Azure, selecione o ícone do Cloud Shell para abrir o Azure Cloud Shell.

    Screenshot of Cloud Shell icon in taskbar.

  3. Para clonar o repositório que contém a origem do aplicativo, execute o seguinte comando git clone no Cloud Shell:

    git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
    
  4. Para navegar para a pasta do repositório localmente, execute o comando a seguir:

    cd mslearn-protect-apis-on-api-management
    
  5. Como o nome sugere, setup.sh é o script que você executa para criar nossa API de teste. Esse script gera um aplicativo Web público que expõe uma interface de OpenAPI:

    bash setup.sh
    

    O script leva cerca de um minuto para ser executado. Quando o script for concluído, ele exibirá duas URLs que poderão ser usadas para testar a implantação do aplicativo. Observe que, durante a implantação, todas as dependências necessárias para execução do aplicativo são instaladas automaticamente no Serviço de Aplicativo remoto.

  6. Para testar se o aplicativo foi implantado corretamente, copie e cole a primeira URL da saída do Cloud Shell em seu navegador. O navegador deverá exibir a interface do usuário do Swagger do aplicativo e declarar os pontos de extremidade RESTful a seguir:

    • api/census, que retorna um censo e as pessoas associadas
    • api/censo/{AnoCenso}, que retorna um censo e as pessoas associadas ao ano especificado
    • api/people/{reference}, que retorna informações detalhadas sobre uma pessoa específica

    Screenshot of the Swagger page for the API, showing the RESTful endpoints.

  7. Por fim, copie a última URL da saída do Cloud Shell. Essa URL é a URL JSON Swagger, da qual você precisará posteriormente neste exercício.

Implantar um gateway de API

A próxima etapa deste exercício é criar um gateway de API no portal do Azure. Na próxima seção, você usará esse gateway para publicar sua API:

  1. Entre no portal do Azure.

  2. No menu do portal do Azure ou na Página Inicial, selecione Criar um recurso. O painel Criar um recurso será exibido.

  3. No painel de menu à esquerda, selecione Integração e insira Gerenciamento de API na caixa de pesquisa Pesquisar serviços e marketplace. Selecione o cartão de Gerenciamento de API nos resultados e selecione Criar para abrir o painel Criar o serviço de Gerenciamento de API.

  4. Na guia Básico, insira os valores a seguir para cada configuração.

    Configuração Valor
    Detalhes do projeto
    Subscription Selecione sua assinatura
    Grupo de recursos Selecione um grupo de recursos novo ou existente. Um grupo de recursos consiste em um contêiner lógico que armazena os recursos relacionados de uma solução do Azure.
    Detalhes da instância
    Região Selecione uma região disponível.
    Nome do recurso Insira apim-CensusData<random number>, substituindo random number por sua própria série de números para garantir que o nome seja globalmente exclusivo.
    Nome da organização Digite Government-Census. O nome de sua organização para uso nas notificações do portal do desenvolvedor e por email. (O portal do desenvolvedor e as notificações não estão disponíveis em todas as camadas de serviço.)
    Email do administrador O endereço de email para receber todas as notificações do sistema.
    Tipo de preços
    Tipo de preço Selecione Consumption (99.95% SLA) na lista suspensa.

    Screenshot of the completed settings on the Basics tab of the Create API Management service screen.

    Observação

    A camada Consumo fornece implantação rápida para teste e tem um modelo de preço de pagamento por uso. A experiência geral de gerenciamento de API é semelhante a outros tipos de preço.

  5. Selecione Examinar + criar. Depois da aprovação na validação, selecione Criar. A implantação pode levar vários minutos. Quando a implantação estiver concluída, você verá a instância de Gerenciamento de API listada nos recursos do Azure. Selecione Ir para o recurso a fim de exibir o painel do serviço de Gerenciamento de API.

Importar a API

Agora, importe a API de Censo para o gateway do Gerenciamento de API:

  1. No painel esquerdo do menu da sua instância de Gerenciamento de API, em APIs, selecione APIs e, a seguir, + Adicionar API.

  2. Em Criar com base na definição, selecione OpenAPI. A caixa de diálogo Criar com base na especificação OpenAPI é exibida.

  3. No campo Especificação OpenAPI, cole a URL JSON do Swagger que você salvou anteriormente no exercício.

    Screenshot of the Create from OpenAPI specification dialog box with the swagger JSON URL entered.

    Observação

    Você observará que, ao pressionar Tab para prosseguir no formulário, alguns dos outros campos serão preenchidos para você. Isso ocorre porque usamos o OpenAPI, que especifica a maioria dos detalhes de conexão necessários.

  4. Mantenha as outras configurações com seus padrões e selecione Criar.

Testar a API

Vejamos quais dados são retornados da API por padrão:

  1. No menu do portal do Azure ou na Página Inicial, selecione Todos os Recursos e, a seguir, selecione sua instância de Gerenciamento de API.

  2. No painel de menu à esquerda, em APIs, selecione APIs e, no painel central, selecione Dados de Censo.

  3. Na barra de menus superior, selecione a guia Teste e escolha a operação GetLatestCensus.

  4. Selecione Enviar.

    Screenshot of the test results for the GetLatestCensus operation, showing the default Response content.

  5. Observe que x-powered-by aparece na resposta e mostra que a estrutura é ASP.NET.

Remover cabeçalhos

Agora, adicionamos uma política para remover o cabeçalho x-powered-by das respostas enviadas pela API:

  1. Selecione Dados de Censo novamente e, na barra de menus superior, selecione a guia Design.

  2. Selecione Todas as operações e, na seção Processamento de saída, clique no ícone </>. O editor XML de política será exibido.

    Screenshot of the Design tab with the Policies icon highlighted in the Outbound processing section.

  3. Substitua a marca padrão <outbound> por este código:

    <outbound>
       <set-header name="x-powered-by" exists-action="delete" />
       <base />
    </outbound>
    
  4. Selecione Salvar.

Testar a remoção de cabeçalhos

Agora, você deve ser capaz de executar um teste para demonstrar que os cabeçalhos foram removidos:

  1. Selecione Dados de Censo novamente e, na barra de menus superior, selecione a guia Teste.

  2. Selecione a operação GetLatestCensus e escolha Enviar.

    Screenshot of the test results for the GetLatestCensus operation, showing the headers removed in the Response.

  3. O cabeçalho x-powered-by não deve estar na resposta HTTP.