Passo 5: adicione uma política

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Agora que alterou o ponto final de destino, já pode adicionar uma política ao seu proxy.

Uma política é um componente do Apigee que pode anexar a diferentes pontos no fluxo de mensagens através dos seus proxies de API. As políticas podem transformar formatos de mensagens, aplicar o controlo de acesso, chamar serviços remotos, autorizar utilizadores, examinar o conteúdo das mensagens para detetar potenciais ameaças e muito mais.

Neste tutorial, vai adicionar a política XMLtoJSON ao seu proxy. Esta política converte o payload de uma mensagem XML em JSON. Também altera o cabeçalho Content-Type da resposta.

Pode anexar uma política a um fluxo no proxy. Os fluxos controlam a forma como as políticas são executadas. Neste exemplo, vai adicionar a política a um fluxo especial denominado PreFlow. As políticas no PreFlow são executadas antes de quaisquer outras políticas no proxy. Embora não precise de compreender os fluxos em detalhe para ler este exemplo, pode saber mais sobre eles em Controlar proxies de API com fluxos.

Adicione a política

Adicione a política XMLtoJSON ao seu proxy.

Apigee na Cloud Console

Existem dois passos para adicionar a política XMLtoJSON ao seu proxy:

Crie uma instância da política

Para usar uma política, primeiro tem de criar uma nova instância da política a partir do modelo de política da seguinte forma:

  1. Na Google Cloud consola, aceda à página Desenvolvimento de proxy > Proxies de API.

    Aceda aos proxies de API

  2. Na lista de proxies, selecione o proxy ao qual quer adicionar a política.
  3. Clique no separador Desenvolver.

  4. No painel do lado esquerdo, clique no botão + junto à pasta Políticas.
  5. Na caixa de diálogo Criar política, selecione Políticas padrão para filtrar a lista de políticas disponíveis por tipo de política.
  6. Na caixa de texto Selecionar tipo de política, desloque a página para baixo até Mediação e selecione XML para JSON.

  7. Opcionalmente, pode alterar o Nome e o Nome a apresentar da política. Por predefinição, o Apigee fornece um prefixo curto para o nome da política, neste caso, X2J-. Pode adicionar uma sequência de palavras descritivas separadas por travessões após o prefixo. Consulte as Convenções de nomenclatura.

    Caixa de diálogo Criar política.

    Quando terminar, clique em Criar para criar a política.

A política XML para JSON é agora apresentada no painel do lado direito da vista Desenvolver:

Política de XML para JSON apresentada na vista Desenvolver.

A metade inferior do painel apresenta o código XML da política.

Para saber mais sobre a política, selecione o ícone de informações Ícone de informações. junto ao nome da política e clique em Política de XML para JSON. Esta ação apresenta a página de referência da política.

Use o Gemini Code Assist para rever as instruções das políticas

Pode usar o Gemini Code Assist na IU para saber mais sobre os elementos das políticas. Consulte o artigo Use a explicação de código do Gemini Code Assist com políticas para obter informações.

Altere o nome da política

Para alterar o nome de uma política:

  1. Selecione a política em Políticas no painel do lado esquerdo.
  2. No elemento <DisplayName> no código XML da política, adicione uma expressão descritiva para a política, como change-xml-to-json, após a abreviatura do nome da política:

    Adicione change-xml-to-json ao nome da política.

    Isto atualiza automaticamente o nome da política, apresentado em Políticas.

    Consulte Convenções de nomenclatura.

Anexe a política a um passo no PreFlow

Agora que criou a política XML para JSON, pode anexá-la a um passo no PreFlow:

  1. Selecione Proxy Endpoints > default > PreFlow no painel do lado esquerdo:

    Destine pontos finais para a seleção de PreFlow no Proxy Explorer.

    Nota: pode ter de expandir o editor visual no painel do lado direito para ver todos os elementos. Para o fazer, clique e arraste a barra de divisão entre o editor visual e o editor de texto um pouco para baixo.

  2. Clique no botão + junto a PreFlow no painel Resposta na parte inferior direita do editor visual:

    Clique no botão + junto a PreFlow no painel Response.

  3. Na caixa de diálogo Adicionar passo de política, selecione a política X2J-change-xml-to-json.
  4. Clique em Adicionar para anexar a política.

    A política X2J-change-xml-to-json é agora apresentada no painel Resposta:

    Política de XML para JSON apresentada no painel de resposta.

  5. Clique em Guardar para guardar a revisão atual com as suas alterações.
  6. Para implementar as alterações na revisão, clique em Implementar e siga as instruções em Implemente um proxy de API.

IU do Apigee Classic

Para adicionar a política XMLtoJSON ao seu proxy:

  1. Abra a IU do Apigee num navegador e inicie sessão.
  2. Clique em Proxies de API na janela principal e selecione um proxy. Para este exemplo, selecione o proxy que criou no Passo 2: crie um proxy de API.
  3. Clique no separador Desenvolver:

    Clique no separador Desenvolver no editor de proxy.

    O Apigee apresenta o editor de proxy de API.

  4. No painel Navigator, clique em Proxy Endpoints > default > PreFlow:

    O Apigee apresenta o editor de fluxo:

    Editor de fluxos.

    Além disso, o Apigee apresenta a configuração do Proxy Endpoint predefinida no painel Código:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
      <Description/>
      <FaultRules/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <Flows/>
      <HTTPProxyConnection>
        <BasePath>/myproxy</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Para adicionar uma política ao seu proxy, clique no botão + Passo no PreFlow de resposta (a metade inferior do editor de fluxo):

    Botão + Passo no PreFlow de resposta.

    O Apigee apresenta uma lista categorizada de políticas na caixa de diálogo Adicionar que pode adicionar ao seu fluxo:

    Lista de políticas.

  6. Desloque a página para baixo e selecione a política XMLtoJSON na categoria Mediação.
  7. Deixe os nomes predefinidos e clique em Adicionar.

    O Apigee anexa a nova política ao PreFlow da resposta:

    Nova política anexada no Preflow da resposta.

    Tenha em atenção que, quando clica em Adicionar, o Apigee faz o seguinte:

    • Adiciona a nova política em Políticas no painel Navegador.
    • Adiciona a política XMLtoJSON no painel Fluxo.
    • Apresenta o XML de configuração da política no painel Código.
  8. Clique em Guardar para guardar a revisão atual com as suas alterações.
  9. Para implementar as alterações, clique no separador Vista geral e, de seguida, no botão Implementar.

Teste a nova política

Para testar a nova política, execute o seguinte comando curl numa janela de terminal:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

onde YOUR ENV_GROUP_HOSTNAME é o nome do anfitrião do grupo de ambientes. Consulte Encontre o nome de anfitrião do grupo de ambientes.

Consulte o artigo Chame o seu proxy de API para mais informações.

Em alternativa, pode abrir o mesmo URL num navegador.

Deve receber a seguinte resposta:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Se o corpo da resposta não tiver este aspeto, verifique se:

  1. O seu ponto final de destino é https://mocktarget.apigee.net/xml, conforme descrito no Passo 4: altere o ponto final de destino:
    • Se receber Hello, Guest! como resposta, tem de acrescentar /xml ao final do ponto final de destino.
    • Se receber um erro 404, verifique se está a aceder a apigee.net e não a apigee.com.
  2. A revisão mais recente do seu proxy está implementada. Experimente voltar a implementar o proxy de API conforme descrito em Implementar um proxy de API e Anular a implementação de um proxy de API.

Para ver os cabeçalhos de pedidos e respostas HTTP, ative a verbosidade em curl com a opção -vs (v torna a resposta detalhada, mas s suprime alguns dos detalhes menos interessantes). O exemplo seguinte pressupõe que o proxy tem o nome myproxy::

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

Deve receber uma resposta semelhante à seguinte. Tenha em atenção que o cabeçalho Content-Type na resposta é application/json. A política XMLtoJSON altera o cabeçalho antes de enviar a resposta de volta.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Passo seguinte

Aprofunde