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
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.
Mapear conteúdo JSON
- Clique na guia Gateway.
- Para excluir a política existente na tela, passe o cursor sobre a política e clique no í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.
- Para exibir a paleta, no painel direito, clique no ícone de adição
.
- Na coluna Transforms (Transformações ), selecione map (mapa ).
O nó de política de mapa é exibido na tela.

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


- Clique em Adicionar entrada.
- Conclua a configuração da entrada do mapa inserindo os seguintes valores
- No campo Context variable (variável de contexto ), digite request.body.
- No campo Name, digite input.
- Na lista suspensa Tipo de conteúdo, selecione application/json.
- Na lista suspensa Definition (Definição), selecione Inline
schema.
A janela pop-up Fornecer um esquema é exibida.

- Na janela pop-up Fornecer um esquema, execute as seguintes tarefas.
- Selecione a guia Gerar a partir de JSON de amostra.
- 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}] } - Clique em Gerar.

- Clique em Concluído.
A janela pop-up agora está fechada.
- 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.
- Ao lado da coluna Output, clique no ícone Edit outputs (Editar saídas)
.
- Clique em Adicionar saída.
- Conclua a configuração da saída do mapa inserindo os seguintes valores
- No campo Context variable (variável de contexto ), digite message.body.
- No campo Name, digite output.
- Na lista suspensa Tipo de conteúdo, selecione application/json.
- Na lista suspensa Definition (Definição), selecione Inline
schema.
A janela pop-up Fornecer um esquema é exibida.

- Na janela pop-up Fornecer um esquema, execute as seguintes tarefas.
- Selecione a guia Gerar a partir de JSON de amostra.
- 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}] } } - Clique em Gerar.

- Clique em Concluído.
A janela pop-up agora está fechada.
- 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.

- Clique em Salvar.
- Na janela de configuração de saída do mapa, na coluna Saída, execute a seguinte tarefa.
- Selecione o botão de rádio de data.
A caixa de diálogo Configurar mapeamento é exibida.
- Na caixa de diálogo Configurar mapeamento, digite o seguinte exemplo JavaScript.
new Date().toGMTString() - Clique em Concluído.

- Na caixa de diálogo Configurar mapeamento, digite o seguinte exemplo JavaScript.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.

- Na coluna Output (Saída ), selecione o botão de rádio customer (cliente ).
A caixa de diálogo Configurar mapeamento é exibida.
- 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 - Clique em Concluído.

- Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
- Na coluna Input (Entrada), selecione o botão de rádio e, na coluna Output (Saída ), selecione o botão de rádio street (rua ).
A caixa de diálogo Configurar mapeamento é exibida.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.
- Na coluna Input (Entrada), selecione o botão de rádio e, na coluna Output (Saída ), selecione o botão de rádio street (rua ).
A caixa de diálogo Configurar mapeamento é exibida.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.

- Na coluna Output (Saída ), selecione o botão de rádio street (rua ).
A caixa de diálogo Configurar mapeamento é exibida.
- 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 - Clique em Concluído.

- Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.
- 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.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.

- Na coluna Output (Saída ), selecione o botão de rádio street (rua ).
A caixa de diálogo Configurar mapeamento é exibida.
- 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. - Clique em Concluído.

- Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
- Na coluna Input (Entrada), selecione o botão de rádio e, na coluna Output (Saída ), selecione o botão de rádio itens.
A caixa de diálogo Configurar mapeamento é exibida.
- Na caixa de diálogo Configurar mapeamento, marque a caixa de seleção Cadeia vazia como valor padrão.
- Clique em Concluído.

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

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

- 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.
- Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
$(0) + ($(input.items.price) * $(input.items.qty))
- Clique em Concluído.

- Na caixa de diálogo Configurar mapeamento, no campo Valor, digite o seguinte código de amostra.
- Na página de saída do nó de política do mapa, clique em Salvar.
- Selecione o botão de rádio de data.
- Clique em Fonte.
- Role a tela para baixo e localize o código em que o total é calculado.

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

- Clique em Salvar.
Testando sua definição de API
Para testar sua definição de API usando a ferramenta de teste do API Manager, conclua as etapas a seguir:
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.
O Quê foi Feito Neste Tutorial
- Criou uma nova API
- Conteúdo mapeado de um esquema JSON para outro esquema.



















