Tutorial: Mapeamento de conteúdo JSON

Este tutorial mostra como mapear o conteúdo da mensagem de um formato ou esquema para outro formato ou esquema.

Antes de iniciar

Essa tarefa pode ser concluída pelos usuários que possuem uma das funções a seguir designadas a eles:
  • Proprietário do catálogo
  • Desenvolvedor
Observação: o catálogo do Sandbox deve ser configurado para usar um DataPower® Gateway (v5 compatible) ou um DataPower API Gateway ou ambos. Consulte Criação e configuração de catálogos.

Sobre este Tutorial

Neste tutorial, você concluirá as seguintes lições:

Criar uma nova API

Siga as etapas a seguir para criar uma nova API.

  1. Faça login no API Manager.
  2. Na página inicial, clique no bloco Desenvolver APIs e produtos.

    Como alternativa, clique no ícone Desenvolver no painel esquerdo.

    Tela APIM

  3. Na página Desenvolvimento, clique em Adicionar > API.

    Menu de adição de API

  4. Na página Selecionar tipo de API,
    1. Certifique-se de que OpenAPI 2.0 esteja selecionado.
    2. Selecione o botão de rádio New OpenAPI.
    3. Clique em Avançar.

      Nova API

  5. Na página Create new OpenAPI, insira as seguintes informações sobre a API.
    Observação: o campo OpenAPI Version é predefinido. Não é possível atualizar esse campo.
    1. No campo Title (Título ), digite Mapper.

      O campo Nome é preenchido com o valor que você digitou no campo Título.

    2. No campo Versão, digite 1.0.0.
    3. No campo Base path (Caminho da base ), digite /map .
    4. Clique em Avançar.

      Detalhes da API

  6. Na seção Seguro,
    1. As caixas de seleção Secure using Client ID e CORS são selecionadas por pessoa. Não desmarque as caixas de seleção.
    2. Clique em Avançar.

      API segura

      Você vê o progresso à medida que a nova API é criada. Quando a API é criada, você vê um Resumo.

  7. Na seção Summary (Resumo ), clique em Edit API (Editar API ).

    Novo resumo da API

    A guia Design do rascunho da definição de API é exibida.

  8. No painel esquerdo, clique em Consumos.
  9. No painel direito, na seção Consumos,
    1. Clique em Incluir +.
    2. Na caixa de diálogo Add schema (Adicionar esquema), na lista suspensa Mime Type (opcional), selecione application/json e clique em Add (Adicionar ).

      Incluir esquema

  10. No painel esquerdo, clique em Produces (Produções ).
  11. No painel direito, na seção Produces (Produtos ),
    1. Clique em Incluir +.
    2. Na caixa de diálogo Add schema (Adicionar esquema), na lista suspensa Mime Type (opcional), selecione application/json e clique em Add (Adicionar ).

      Tipo MIME

  12. No painel esquerdo, clique em Paths (Caminhos ).
  13. No painel direito, na seção Paths (Caminhos ),
    1. Clique em Incluir +.
    2. No campo Path name (Nome do caminho), digite /jsonmap e clique em Add (Adicionar ).

      Caminho

  14. No painel esquerdo, sob o caminho recém-criado (/jsonmap ), ao lado de Operations (Operações ), clique no ícone +.

    A caixa de diálogo Adicionar esquema é exibida.

  15. Na caixa de diálogo Add schema (Adicionar esquema ), execute as seguintes tarefas.
    1. No campo Verb(Key)(opcional), digite get.
    2. No campo Operação (opcional), digite POST.
    3. Clique em Adicionar.

      Campo de operação

  16. No painel esquerdo, ao lado de Parâmetros, clique no ícone +.

    A caixa de diálogo Adicionar esquema é exibida.

  17. Na caixa de diálogo Add schema (Adicionar esquema ), execute as seguintes tarefas.
    1. No campo Name, digite body.
    2. Marque a caixa de seleção Required (Obrigatório ).
    3. Na lista suspensa Located In (Localizado em ), selecione body.
    4. Clique em Adicionar.

      Corpo

  18. Role para baixo até a seção Schema e clique em View (Exibir ).
  19. Na seção Schema (Esquema ), execute as seguintes tarefas.
    1. No campo Título (opcional), digite body.
    2. Na lista suspensa Tipo, selecione string.
    3. No canto superior direito, clique em Save (Salvar ).

      Esquema

  20. No painel esquerdo, expanda Caminhos > Operações > Respostas.
  21. Em Respostas, clique em 200.
  22. No painel direito, na seção 200, execute as seguintes tarefas.
    1. No campo Name (Key), digite 200.
    2. No campo Description (Descrição ), digite 200 OK.
    3. No canto superior direito, clique em Save (Salvar ).

      Nome e Descrição

Mapear conteúdo JSON

  1. Clique na guia Gateway.
  2. Para excluir a política existente na tela, passe o cursor sobre a política e clique no ícone Excluir ícone Excluir.
    Observação: se você estiver usando o DataPower API Gateway, a política será uma política de invocação, enquanto que se estiver usando o DataPower Gateway (v5 compatible), a política será uma política de proxy.

    Nó de política

  3. Para exibir a paleta, no painel direito, clique no ícone de adição ícone de mais.

    Ícone de mais para adicionar política

  4. Na coluna Transforms (Transformações ), selecione map (mapa ).

    O nó de política de mapa é exibido na tela.

    Mapear nó de política

  5. Clique no nó da política de mapa para abrir a caixa de diálogo de configuração.
  6. Ao lado de Input (Entrada), clique no ícone Edit inputs (Editar entradas). Ícone de edição

    Editar entradas

  7. Clique em Adicionar entrada.
  8. Conclua a configuração da entrada do mapa inserindo os seguintes valores
    1. No campo Context variable (variável de contexto ), digite request.body.
    2. No campo Name, digite input.
    3. Na lista suspensa Tipo de conteúdo, selecione application/json.
    4. Na lista suspensa Definition (Definição), selecione Inline schema.

      A janela pop-up Fornecer um esquema é exibida.

      Janela pop-up para fornecer um esquema

    5. Na janela pop-up Fornecer um esquema, execute as seguintes tarefas.
      1. Selecione a guia Gerar a partir de JSON de amostra.
      2. Cole o seguinte exemplo de JSON na caixa.
        {"order":
        {"customer":
        {"name":
        {
        "firstname":"John",
        "middlename":"Q",
        "lastname":"Smith"
        },
        "address":
        {
        "line1":"550 King St",
        "line2":"Dept 5",
        "city":"Littleton",
        "state":"MA",
        "country":"USA",
        "code":"01460"
        }
        }
        },
        "items":
        [{"item":"shoes", "color":"black", "qty":2, "price":23.50},
        {"item":"socks", "color":"argyle", "qty":2, "price":3.95},
        {"item":"pants", "color":"grey", "qty":1, "price":48.00}]
        }
      3. Clique em Gerar.

        Gerar a partir do JSON de amostra

      4. Clique em Concluído.

        A janela pop-up agora está fechada.

    6. Na caixa de diálogo de configuração da política de mapa, clique em Done (Concluído ) para concluir a configuração do mapa.
  9. Ao lado da coluna Output, clique no ícone Edit outputs (Editar saídas) Ícone de edição.

    Editar saída

  10. Clique em Adicionar saída.
  11. Conclua a configuração da saída do mapa inserindo os seguintes valores
    1. No campo Context variable (variável de contexto ), digite message.body.
    2. No campo Name, digite output.
    3. Na lista suspensa Tipo de conteúdo, selecione application/json.
    4. Na lista suspensa Definition (Definição), selecione Inline schema.

      A janela pop-up Fornecer um esquema é exibida.

      Fornecer uma janela pop-up de esquema

    5. Na janela pop-up Fornecer um esquema, execute as seguintes tarefas.
      1. Selecione a guia Gerar a partir de JSON de amostra.
      2. Cole o seguinte exemplo de JSON na caixa.
        {"order":
        {
        "date":"12-12-12",
        "customer": "John Smith",
        "address":
        {
        "street":"king",
        "citystatezip":"lit MA 01469",
        "country":"USA"
        },
        "items":[{"type":"shoes", "color":"black", "qty":2, "price":23.50}]
        }
        }
      3. Clique em Gerar.

        Gerar a partir do JSON de amostra

    6. Clique em Concluído.

      A janela pop-up agora está fechada.

    7. Na caixa de diálogo de configuração da política de mapa, clique em Done (Concluído ) para concluir a configuração do mapa.

      Configuração do mapa

  12. Clique em Salvar.
  13. Na janela de configuração de saída do mapa, na coluna Saída, execute a seguinte tarefa.
    1. Selecione o botão de rádio de data.

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, digite o seguinte exemplo JavaScript.

        new Date().toGMTString()

      2. Clique em Concluído.

        Configurar o mapeamento

    2. Na coluna Input (Entrada), selecione o botão de rádio firstname (nome) e, na coluna Output (Saída ), selecione o botão de rádio customer (cliente ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.
    3. Na coluna Input (Entrada), selecione o botão de rádio middlename (nome do meio) e, na coluna Output (Saída ), selecione o botão de rádio customer (cliente ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.
    4. Na coluna Input (Entrada), selecione o botão de rádio lastname (sobrenome ) e, na coluna Output (Saída ), selecione o botão de rádio customer (cliente ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.

        Configurar o mapeamento

    5. Na coluna Output (Saída ), selecione o botão de rádio customer (cliente ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
        var name = $(input.order.customer.name.firstname) + ' '; 
          if($(input.order.customer.name.middlename)) {
          name += $(input.order.customer.name.middlename) + ' ';}
          name += $(input.order.customer.name.lastname);
          name
      2. Clique em Concluído.

        Sequência de caracteres vazia como valor padrão

    6. Na coluna Input (Entrada), selecione o botão de rádio address (endereço ) > line1 e, na coluna Output (Saída ), selecione o botão de rádio street (rua ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.
    7. Na coluna Input (Entrada), selecione o botão de rádio address (endereço ) > line2 e, na coluna Output (Saída ), selecione o botão de rádio street (rua ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.

        Sequência de caracteres vazia como valor padrão

    8. Na coluna Output (Saída ), selecione o botão de rádio street (rua ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
        var street = $(input.order.customer.address.line1) + ' '; 
          if($(input.order.customer.address.line2)) {
          street += $(input.order.customer.address.line2);}
          street
      2. Clique em Concluído.

        Configurar Mapeamento

    9. Na coluna Input (Entrada), selecione o botão de rádio city (cidade ) e, na coluna Output (Saída ), selecione o botão de rádio citystatezip (cidade-estado-zip ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.
    10. Na coluna Input (Entrada), selecione o botão de rádio state (estado ) e, na coluna Output (Saída ), selecione o botão de rádio citystatezip (cidade-estado-zip ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.
    11. Na coluna Input (Entrada), selecione o botão de rádio code (código) e, na coluna Output (Saída ), selecione o botão de rádio citystatezip (cidade-estado-zip ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.

        Configurar Mapeamento

    12. Na coluna Output (Saída ), selecione o botão de rádio street (rua ).

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
        $(1) + " " + $(2) + " " + $(3)
        Observação: as referências às variáveis são posicionais; $(1) refere-se ao primeiro valor mapeado (input.order.customer.city), e assim por diante.
      2. Clique em Concluído.

        Sequência de caracteres vazia como valor padrão

    13. Na coluna Input (Entrada), selecione o botão de rádio itens > item e, na coluna Output (Saída ), selecione o botão de rádio itens.

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
      2. Clique em Concluído.

        Configurar o mapeamento

    14. Na coluna Output, clique na segunda propriedade de adição.

      incluir propriedade

      1. No primeiro campo, digite total.
      2. Na lista suspensa, selecione float.
      3. Clique no ícone +.

        valor flutuante

    15. Na coluna Input (Entrada), selecione o botão de rádio items (itens ) e, na coluna Output (Saída ), selecione o botão de rádio total.

      A caixa de diálogo Configurar mapeamento é exibida.

      1. Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
        $(0) + ($(input.items.price) * $(input.items.qty))

        Sequência de caracteres vazia como valor padrão

      2. Clique em Concluído.

        mapeamento de configuração

    16. Na página de saída do nó de política do mapa, clique em Salvar.
  14. Clique em Fonte.
  15. Role a tela para baixo e localize o código em que o total é calculado.

    Cálculo do total

  16. Insira uma nova linha com o código foreach: input.items.

    Cálculo do total ajustado

  17. Clique em Salvar.

Testando sua definição de API

Observação: devido às restrições de compartilhamento de recursos entre origens (CORS), a ferramenta de teste de montagem não pode ser usada com os navegadores Chrome ou Safari na plataforma macOS Catalina.

Para testar sua definição de API usando a ferramenta de teste do API Manager, conclua as etapas a seguir:

  1. Clique em Assemble.

    Página de montagem

  2. Clique no ícone Test (Teste ) O ícone Teste. A ferramenta de teste é aberta.
  3. Clique em Ativar API.

    Configuração do teste

  4. No campo Operation (Operação ), selecione post /jsonmap.

    Op. de seleção de teste

  5. No campo body (corpo ), digite o seguinte texto JSON.
    {"order":
    {"customer":
    {"name":
    {
    "firstname":"John",
    "middlename":"Q",
    "lastname":"Smith"
    },
    "address":
    {
    "line1":"550 King St",
    "line2":"Dept 5",
    "city":"Littleton",
    "state":"MA",
    "country":"USA",
    "code":"01460"
    }
    }
    },
    "items":
    [{"item":"shoes", "color":"black", "qty":2, "price":23.50},
    {"item":"socks", "color":"argyle", "qty":2, "price":3.95},
    {"item":"pants", "color":"grey", "qty":1, "price":48.00}]
    }

    Op. de seleção de teste

  6. Clique em Invoke. A resposta é exibida. Observe que os valores dos campos date, street, citystatezip e total refletem as fórmulas de mapeamento que você definiu anteriormente.
    Observação: se estiver usando um certificado autoassinado, talvez seja solicitado que você visite um site fornecido URL. Clique no link e aceite o certificado antes de retornar ao API Manager e clicar em Invoke novamente.

    Sucesso do teste

Gerencie sua definição de API

Com sua nova API funcionando como esperado, você pode começar a gerenciá-la. Para ver suas opções imediatas, execute as etapas a seguir.

  1. No painel de navegação, clique no ícone Develop (Desenvolver ) Ícone de edição.

    Desenvolver a partir do painel de navegação

  2. Ao lado da API do Mapper, clique no ícone do Menu O ícone de opções e selecione Download.

    Opção de Download

O Quê foi Feito Neste Tutorial

  • Criou uma nova API
  • Conteúdo mapeado de um esquema JSON para outro esquema.