Tutorial: Mapeo de contenido JSON
Este tutorial muestra cómo asignar el contenido de un mensaje de un formato o esquema a otro formato o esquema.
Antes de empezar
Esta tarea puede ser realizada por usuarios que tengan asignado uno de los siguientes roles:- Propietario de catálogo
- Desarrollador
Acerca de esta guía de aprendizaje
En este tutorial vas a completar las siguientes lecciones:Crear una API nueva
Siga los siguientes pasos para crear una nueva API.
Mapear contenido JSON
- Haga clic en la pestaña Pasarela.
- Para eliminar la política existente en el lienzo, sitúe el cursor sobre ella y haga clic en el icono Eliminar
.Nota: Si está utilizando DataPower API Gateway, la política es una política de invocación, mientras que si está utilizando DataPower Gateway (v5 compatible), la política es una política de proxy.
- Para ver la paleta, en el panel derecho, haga clic en el icono más
.
- En la columna Transformaciones, seleccione mapa.
El nodo de la política de mapas se muestra en el lienzo.

- Haga clic en el nodo de política de mapas para abrir el cuadro de diálogo de configuración.
- Junto a Entradas, haga clic en el icono Editar entradas.


- Haz clic en Añadir entrada.
- Complete la configuración de la entrada de mapas introduciendo los siguientes valores
- En el campo Variable de contexto, introduzca request.body.
- En el campo Nombre, introduzca input.
- En la lista desplegable Tipo de contenido, seleccione application/json.
- En la lista desplegable Definición, seleccione Inline
schema.
Aparecerá la ventana emergente Proporcionar un esquema.

- En la ventana emergente Proporcionar un esquema, realice las siguientes tareas.
- Seleccione la pestaña Generar a partir de JSON de muestra.
- Pegue el siguiente ejemplo de JSON en la casilla.
{"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}] } - Haga clic en Generar.

- Pulse Hecho.
La ventana emergente se cierra.
- En el cuadro de diálogo de configuración de la política de mapas, haga clic en Listo para completar la configuración de los mapas.
- Junto a la columna Salida, haga clic en el icono Editar salidas
.
- Haz clic en Añadir salida.
- Complete la configuración de la salida del mapa introduciendo los siguientes valores
- En el campo Variable de contexto, introduzca message.body.
- En el campo Nombre, introduzca output.
- En la lista desplegable Tipo de contenido, seleccione application/json.
- En la lista desplegable Definición, seleccione Inline
schema.
Aparecerá la ventana emergente Proporcionar un esquema.

- En la ventana emergente Proporcionar un esquema, realice las siguientes tareas.
- Seleccione la pestaña Generar a partir de JSON de muestra.
- Pegue el siguiente ejemplo de JSON en la casilla.
{"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}] } } - Haga clic en Generar.

- Pulse Hecho.
La ventana emergente se cierra.
- En el cuadro de diálogo de configuración de la política de mapas, haga clic en Listo para completar la configuración de los mapas.

- Pulse Guardar.
- En la ventana de configuración de la salida del mapa, en la columna Salida, realice la siguiente tarea.
- Seleccione el botón de opción de la fecha.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, introduzca el siguiente ejemplo JavaScript.
new Date().toGMTString() - Pulse Hecho.

- En el cuadro de diálogo Configurar asignación, introduzca el siguiente ejemplo JavaScript.
- En la columna Entrada, seleccione el botón de opción Nombre y, a continuación, en la columna Salida, seleccione el botón de opción Cliente.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.
- En la columna Entrada, seleccione el botón de opción Middlename y, a continuación, en la columna Salida, seleccione el botón de opción Cliente.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.
- En la columna Entrada, seleccione el botón de opción Apellido y, a continuación, en la columna Salida, seleccione el botón de opción Cliente.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.

- En la columna Salida, seleccione el botón de opción Cliente.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
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 - Pulse Hecho.

- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
- En la columna Entrada, seleccione el botón de opción y, a continuación, en la columna Salida, seleccione el botón de opción Calle.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.
- En la columna Entrada, seleccione el botón de opción y, a continuación, en la columna Salida, seleccione el botón de opción Calle.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.

- En la columna Salida, seleccione el botón de opción Calle.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
var street = $(input.order.customer.address.line1) + ' '; if($(input.order.customer.address.line2)) { street += $(input.order.customer.address.line2);} street - Pulse Hecho.

- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
- En la columna Entrada, seleccione el botón de opción ciudad y, a continuación, en la columna Salida, seleccione el botón de opción ciudadestadozip.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.
- En la columna Entrada, seleccione el botón de opción Estado y, a continuación, en la columna Salida, seleccione el botón de opción Ciudad-Estado-Código postal.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.
- En la columna Entrada, seleccione el botón de opción Código y, a continuación, en la columna Salida, seleccione el botón de opción Código postal.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.

- En la columna Salida, seleccione el botón de opción Calle.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
$(1) + " " + $(2) + " " + $(3)Nota: Las referencias a variables son posicionales; $(1) se refiere al primer valor asignado (input.order.customer.city), y así sucesivamente. - Pulse Hecho.

- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
- En la columna Entrada, seleccione el botón de opción y luego, en la columna Salida, seleccione el botón de opción Elementos.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
- Pulse Hecho.

- En la columna Salida, haga clic en la segunda propiedad Añadir.

- En el primer campo, introduzca total.
- En la lista desplegable, seleccione float.
- Haz clic en el icono +.

- En la columna Entrada, seleccione el botón de opción Elementos y, a continuación, en la columna Salida, seleccione el botón de opción Total.
Aparece el cuadro de diálogo Configurar asignación.
- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
$(0) + ($(input.items.price) * $(input.items.qty))
- Pulse Hecho.

- En el cuadro de diálogo Configurar asignación, en el campo Valor, introduzca el siguiente código de ejemplo.
- En la página de salida del nodo de política de mapas, haga clic en Guardar.
- Seleccione el botón de opción de la fecha.
- Haga clic en la fuente.
- Desplácese hacia abajo y localice el código donde se calcula el total.

- Inserte una nueva línea con el código foreach: input.items.

- Pulse Guardar.
Probar la definición de API
Para probar su definición de API utilizando la herramienta de prueba del Gestor de API, siga los siguientes pasos:
Gestione la definición de su API
Ahora que su nueva API funciona como es debido, puede empezar a gestionarla. Para ver sus opciones inmediatas, realice los siguientes pasos.
Qué ha hecho en esta guía de aprendizaje
- Creada una nueva API
- Contenido mapeado de un esquema JSON a otro esquema.



















