Exercício – remover informações de cabeçalhos

Concluído

As empresas que publicam APIs Web com frequência precisam de controlar cuidadosamente os cabeçalhos HTTP devolvidos pelas APIs, de preferência sem ter de 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 essenciais determinam que os dados são partilhados com segurança e podem ser facilmente corrigidos para facilitar a sua rápida integração. Como programador principal, tem de 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.

Neste exercício, irá:

  • Publicar uma API de Censo RESTful.
  • Implementar um gateway de Gestão de API.
  • Expor a API de Censo através do ponto final do gateway.
  • Remova um cabeçalho da resposta.

Importante

Precisa da sua própria subscrição do Azure para executar este exercício e poderá incorrer em custos. Se ainda não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Implantar a API da Web do Censo

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

Para poupar tempo, vamos começar por executar um script para alojar a nossa API RESTful no Azure. O script realiza os passos seguintes:

  • Cria um plano do Serviço de Aplicações do Azure no escalão gratuito.
  • Ele cria uma API Web dentro de um Serviço de Aplicativo do Azure, que é configurado para implantação do Git a partir de um repositório local.
  • Define as credenciais de implementação de nível de conta para a nossa aplicação.
  • Configura o Git localmente.
  • Ele implanta nossa API da Web em nossa instância do Serviço de Aplicativo.
  1. Inicie sessão 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 nosso aplicativo, execute o seguinte git clone comando 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 seguinte comando:

    cd mslearn-protect-apis-on-api-management
    
  5. Como o próprio nome sugere, setup.sh é o script que você executa para criar nossa API de teste. Este script irá gerar uma aplicação Web pública que expõe uma interface de OpenAPI:

    bash setup.sh
    

    A execução do script demora cerca de um minuto. Quando o script estiver concluído, apresenta dois URLs que pode utilizar para testar a implementação da aplicação. Repare que, durante a implementação, todas as dependências necessárias para a nossa aplicação ser executada são automaticamente instaladas no Serviço de Aplicações remoto.

  6. Para testar se nosso aplicativo foi implantado corretamente, copie e cole o primeiro URL da saída do Cloud Shell em seu navegador. O browser deverá apresentar a IU do Swagger da nossa aplicação e declarar os seguintes pontos finais RESTful:

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

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

  7. Por fim, copie o último URL da saída do Cloud Shell. Este URL é o URL JSON swagger, que você precisa mais adiante neste exercício.

Implementar um gateway de API

O passo seguinte neste exercício é criar um gateway de API no portal do Azure. Na próxima secção, irá utilizar este gateway para publicar a sua API:

  1. Inicie sessão no portal do Azure.

  2. No menu do portal do Azure ou a partir da Home Page, selecione Criar um recurso. O painel Criar um recurso é exibido.

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

  4. Na guia Noções básicas, insira os seguintes valores para cada configuração.

    Definição valor
    Detalhes do projeto
    Subscrição Selecione a sua subscrição
    Grupo de recursos Selecione um grupo de recursos novo ou existente. Um grupo de recursos é um contêiner lógico que contém recursos relacionados para uma solução do Azure.
    Detalhes da instância
    Região Selecione uma região disponível.
    Nome do recurso Digite 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 Introduzir Government-Census. O nome da sua organização para uso no portal do desenvolvedor e notificações por e-mail. (O portal do desenvolvedor e as notificações não estão disponíveis em todas as camadas de serviço.)
    E-mail do administrador O endereço de e-mail para receber todas as notificações do sistema.
    Escalão de preço
    Escalão 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.

    Nota

    A camada Consumo fornece implantação rápida para testes e tem um modelo de preços de pagamento por uso. A experiência geral de gerenciamento de API é semelhante aos outros níveis de preços.

  5. Selecione Rever + criar. Depois que a validação for aprovada, selecione Criar. A implementação poderá demorar vários minutos. Quando a implantação for concluída, você verá a instância de Gerenciamento de API listada nos recursos do Azure. Selecione Ir para recurso para visualizar o painel do seu serviço de Gerenciamento de API.

Importar a API

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

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

  2. Em Criar a partir da definição, selecione OpenAPI. A caixa de diálogo Criar a partir da especificação OpenAPI é exibida.

  3. No campo de especificação OpenAPI, cole o URL JSON swagger que você salvou anteriormente no exercício.

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

    Nota

    Você notará que, quando você tabular fora da caixa, alguns dos outros campos são preenchidos para você. Isso ocorre porque você usou OpenAPI, que especifica a maioria dos detalhes de conexão necessários.

  4. Deixe as outras configurações em seus padrões e selecione Criar.

Testar a API

Vejamos os dados que são devolvidos por predefinição pela API:

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

  2. No painel de menu esquerdo, em APIs, selecione APIs e, no painel central, selecione Dados do censo.

  3. Na barra de menu superior, selecione a guia Teste e, em seguida, selecione 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 está ASP.NET.

Remover os cabeçalhos

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

  1. Selecione Dados do censo novamente e, na barra de menu superior, selecione a guia Design .

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

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

  3. Substitua a etiqueta predefinida <outbound> por este código:

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

Testar a remoção de cabeçalhos

Agora deverá conseguir executar um teste para demonstrar que os cabeçalhos foram removidos:

  1. Selecione Dados do censo novamente e, na barra de menu superior, selecione a guia Teste .

  2. Selecione a operação GetLatestCensus e, em seguida, selecione 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.