Etapa 4: adicionar uma política

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Agora que você alterou o endpoint de destino, já pode adicionar uma política ao seu proxy.

Uma política é um componente de borda que pode ser anexado a diferentes pontos no fluxo de mensagens pelos proxies da API. As políticas podem transformar formatos de mensagem, aplicar o controle de acesso, chamar serviços remotos, autorizar usuários, examinar o conteúdo das mensagens para detectar possíveis ameaças e fazer muito mais.

Neste tutorial, você adicionará a política XMLtoJSON ao seu proxy. Essa política converte o payload de uma mensagem XML para JSON. Ele também altera o cabeçalho Content-Type da resposta.

Para adicionar a política XML a JSON ao seu proxy:

  1. Abra a IU do Edge em um navegador e faça login.
  2. Clique em Proxies de API na janela principal e selecione um proxy. Para este exemplo, selecione o proxy que você criou na Etapa 1: criar um proxy de API.
  3. Clique na guia Desenvolver:

    O Edge mostra o editor de proxy da API.

  4. No painel Navigator, clique em Endpoints de proxy > padrão > PreFlow:

    O Edge exibe o editor de fluxo:

    Além disso, o Edge exibe a configuração padrão do endpoint do proxy 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>/getstarted</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Para adicionar uma política ao proxy, clique no botão + Step no pré-fluxo da resposta (a metade inferior do editor de fluxos):

    O Edge exibe uma lista categorizada de políticas na caixa de diálogo Add que você pode adicionar ao seu fluxo:

  6. Role para baixo e selecione a política XML para JSON na categoria "Mediação".
  7. Mantenha os nomes padrão e clique em Adicionar.

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

    Quando você clica em Add, o Edge faz o seguinte:

    • Adiciona a nova política em Políticas no painel Navegador.
    • Adiciona a política XML para JSON no painel Fluxo.
    • Exibe o XML de configuração da política no painel Código.
  8. Clique em Save para salvar a revisão atual com as alterações.

Faça um teste. Em uma janela de terminal, execute o seguinte comando curl:

curl https://org_name-test.apigee.net/getstarted

Em que:

Também é possível abrir o mesmo URL em um navegador.

Você receberá a seguinte resposta:

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

Se o corpo da resposta não tiver esta aparência, verifique se:

  1. O endpoint de destino é "https://mocktarget.apigee.net/xml", conforme descrito na Etapa 3: alterar o endpoint de destino:
    • Se você receber "Olá, convidado!" como resposta, será necessário anexar "/xml" ao final do endpoint de destino.
    • Se aparecer um erro 404, verifique se você está acessando "apigee.net", e não "apigee.com".
  2. A revisão mais recente do seu proxy está implantada. Tente reimplantar o proxy de API conforme descrito em Como implantar e cancelar a implantação de um proxy de API.

Para ver os cabeçalhos de solicitação e resposta HTTP, ative o nível de detalhes em curl com a opção -vs (v torna a resposta detalhada, mas s suprime alguns dos detalhes menos interessantes). Exemplo:

curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool

Você verá uma resposta semelhante a esta. Observe que o cabeçalho Content-Type na resposta é "application/json". A política XML para JSON altera o cabeçalho antes de enviar a resposta de volta.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to ahamilton-eval-test.apigee.net (10.20.30.40) port 443 (#0)
...
> GET /getstarted HTTP/1.1
> Host: ahamilton-eval-test.apigee.net
> 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"
  }
}

Próxima etapa

Vá além