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
Nota: El catálogo Sandbox debe configurarse para utilizar DataPower® Gateway (v5 compatible) , DataPower API Gateway o ambos. Véase Creación y configuración de catálogos.

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.

  1. Inicie sesión en API Manager.
  2. En la página de inicio, haga clic en el mosaico Desarrollar API y productos.

    También puede hacer clic en el icono Revelar del panel izquierdo.

    Pantalla APIM

  3. En la página Desarrollo, haga clic en Añadir > API.

    API añadir menú

  4. En la página Seleccionar tipo de API,
    1. Asegúrese de que OpenAPI 2.0 está seleccionado.
    2. Seleccione el botón de opción Nuevo OpenAPI.
    3. Pulse Siguiente.

      Nueva API

  5. En la página Crear nueva OpenAPI, introduzca la siguiente información sobre la API.
    Nota: El campo OpenAPI Version está predefinido. No puede actualizar este campo.
    1. En el campo Título, introduzca Mapper.

      El campo Nombre se rellena con el valor que introduzca en el campo Título.

    2. En el campo Versión, introduzca 1.0.0.
    3. En el campo Ruta base, introduzca /map .
    4. Pulse Siguiente.

      Detalles de la API

  6. En la sección Seguro,
    1. Las casillas Secure using Client ID y CORS se seleccionan por cada usuario. No anule la selección de las casillas.
    2. Pulse Siguiente.

      API segura

      Verá el progreso a medida que se crea la nueva API. Cuando se crea la API, aparece un Resumen.

  7. En la sección Resumen, haga clic en Editar API.

    Nuevo resumen de la API

    Aparecerá la pestaña Diseño del borrador de su definición de API.

  8. En el panel izquierdo, haga clic en Consumos.
  9. En el panel derecho, en la sección Consumos,
    1. Pulse Añadir +.
    2. En el cuadro de diálogo Añadir esquema, en la lista desplegable Tipo Mime (opcional), seleccione application/json y, a continuación, haga clic en Añadir.

      Añadir esquema

  10. En el panel izquierdo, haga clic en Productos.
  11. En el panel derecho, en la sección Produce,
    1. Pulse Añadir +.
    2. En el cuadro de diálogo Añadir esquema, en la lista desplegable Tipo Mime (opcional), seleccione application/json y, a continuación, haga clic en Añadir.

      Tipo Mime

  12. En el panel izquierdo, haga clic en Rutas.
  13. En el panel derecho, en la sección Rutas,
    1. Pulse Añadir +.
    2. En el campo Nombre de ruta, introduzca /jsonmap y haga clic en Añadir.

      Vía de acceso

  14. En el panel izquierdo, debajo de la ruta recién creada (/jsonmap ), junto a Operaciones, haga clic en el icono +.

    Aparecerá el cuadro de diálogo Añadir esquema.

  15. En el cuadro de diálogo Añadir esquema, realice las siguientes tareas.
    1. En el campo Verbo(Clave)(opcional), introduzca get.
    2. En el campo Operación (opcional), introduzca POST.
    3. Pulse Añadir.

      Campo de operación

  16. En el panel izquierdo, junto a Parámetros, haga clic en el icono +.

    Aparecerá el cuadro de diálogo Añadir esquema.

  17. En el cuadro de diálogo Añadir esquema, realice las siguientes tareas.
    1. En el campo Nombre, introduzca body.
    2. Seleccione la casilla Obligatorio.
    3. En la lista desplegable Situado en, seleccione body.
    4. Pulse Añadir.

      Cuerpo

  18. Desplácese hasta la sección Esquema y haga clic en Ver.
  19. En la sección Esquema, realice las siguientes tareas.
    1. En el campo Título (opcional), introduzca body.
    2. En la lista desplegable Tipo, seleccione cadena.
    3. En la esquina superior derecha, haga clic en Guardar.

      Esquema

  20. En el panel izquierdo, expanda Rutas > Operaciones > Respuestas.
  21. En Respuestas, haga clic en 200.
  22. En el panel derecho, en la sección 200, realice las siguientes tareas.
    1. En el campo Nombre (Clave ), introduzca 200.
    2. En el campo Descripción, introduzca 200 OK.
    3. En la esquina superior derecha, haga clic en Guardar.

      Nombre y descripción

Mapear contenido JSON

  1. Haga clic en la pestaña Pasarela.
  2. Para eliminar la política existente en el lienzo, sitúe el cursor sobre ella y haga clic en el icono Eliminar Icono Suprimir.
    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.

    Nodo político

  3. Para ver la paleta, en el panel derecho, haga clic en el icono más icono plus.

    Icono más para añadir una política

  4. En la columna Transformaciones, seleccione mapa.

    El nodo de la política de mapas se muestra en el lienzo.

    Nodo de política de asignación

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

    Editar datos de entrada

  7. Haz clic en Añadir entrada.
  8. Complete la configuración de la entrada de mapas introduciendo los siguientes valores
    1. En el campo Variable de contexto, introduzca request.body.
    2. En el campo Nombre, introduzca input.
    3. En la lista desplegable Tipo de contenido, seleccione application/json.
    4. En la lista desplegable Definición, seleccione Inline schema.

      Aparecerá la ventana emergente Proporcionar un esquema.

      Ventana emergente para proporcionar un esquema

    5. En la ventana emergente Proporcionar un esquema, realice las siguientes tareas.
      1. Seleccione la pestaña Generar a partir de JSON de muestra.
      2. 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}]
        }
      3. Haga clic en Generar.

        Generar a partir de ejemplo JSON

      4. Pulse Hecho.

        La ventana emergente se cierra.

    6. 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.
  9. Junto a la columna Salida, haga clic en el icono Editar salidas Icono Editar.

    Editar salida

  10. Haz clic en Añadir salida.
  11. Complete la configuración de la salida del mapa introduciendo los siguientes valores
    1. En el campo Variable de contexto, introduzca message.body.
    2. En el campo Nombre, introduzca output.
    3. En la lista desplegable Tipo de contenido, seleccione application/json.
    4. En la lista desplegable Definición, seleccione Inline schema.

      Aparecerá la ventana emergente Proporcionar un esquema.

      Proporcionar una ventana emergente de esquema

    5. En la ventana emergente Proporcionar un esquema, realice las siguientes tareas.
      1. Seleccione la pestaña Generar a partir de JSON de muestra.
      2. 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}]
        }
        }
      3. Haga clic en Generar.

        Generar a partir de ejemplo JSON

    6. Pulse Hecho.

      La ventana emergente se cierra.

    7. 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.

      Configuración del mapa

  12. Pulse Guardar.
  13. En la ventana de configuración de la salida del mapa, en la columna Salida, realice la siguiente tarea.
    1. Seleccione el botón de opción de la fecha.

      Aparece el cuadro de diálogo Configurar asignación.

      1. En el cuadro de diálogo Configurar asignación, introduzca el siguiente ejemplo JavaScript.

        new Date().toGMTString()

      2. Pulse Hecho.

        Configurar correlación

    2. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.
    3. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.
    4. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.

        Configurar correlación

    5. En la columna Salida, seleccione el botón de opción Cliente.

      Aparece el cuadro de diálogo Configurar asignación.

      1. 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
      2. Pulse Hecho.

        Serie vacía como valor predeterminado

    6. En la columna Entrada, seleccione el botón de opción Dirección > line1 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.
    7. En la columna Entrada, seleccione el botón de opción Dirección > line2 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.

        Serie vacía como valor predeterminado

    8. En la columna Salida, seleccione el botón de opción Calle.

      Aparece el cuadro de diálogo Configurar asignación.

      1. 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
      2. Pulse Hecho.

        Configurar correlación

    9. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.
    10. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.
    11. 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.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.

        Configurar correlación

    12. En la columna Salida, seleccione el botón de opción Calle.

      Aparece el cuadro de diálogo Configurar asignación.

      1. 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.
      2. Pulse Hecho.

        Serie vacía como valor predeterminado

    13. En la columna Entrada, seleccione el botón de opción Elementos > elemento y luego, en la columna Salida, seleccione el botón de opción Elementos.

      Aparece el cuadro de diálogo Configurar asignación.

      1. En el cuadro de diálogo Configurar asignación, active la casilla Cadena vacía como valor predeterminado.
      2. Pulse Hecho.

        Configurar correlación

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

      añadir propiedad

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

        flotante

    15. 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.

      1. 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))

        Serie vacía como valor predeterminado

      2. Pulse Hecho.

        mapeo de configuración

    16. En la página de salida del nodo de política de mapas, haga clic en Guardar.
  14. Haga clic en la fuente.
  15. Desplácese hacia abajo y localice el código donde se calcula el total.

    Cálculo del total

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

    Cálculo del total ajustado

  17. Pulse Guardar.

Probar la definición de API

Nota: Debido a las restricciones de Cross-Origin Resource Sharing (CORS), la herramienta de prueba de ensamblaje no puede utilizarse con los navegadores Chrome o Safari en la plataforma macOS Catalina.

Para probar su definición de API utilizando la herramienta de prueba del Gestor de API, siga los siguientes pasos:

  1. Haz clic en Ensamblar.

    Página de montaje

  2. Haga clic en el icono Prueba El icono Test. Se abre la herramienta de prueba.
  3. Haga clic en Activar API.

    Configuración de la prueba

  4. En el campo Operación, seleccione post /jsonmap.

    Prueba de selección op

  5. En el campo cuerpo, introduzca el siguiente 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}]
    }

    Prueba de selección op

  6. Haga clic en Invocar. Se visualizará la respuesta. Tenga en cuenta que los valores de los campos date, street, citystatezip, y total reflejan las fórmulas de asignación que definió anteriormente.
    Nota: Si utiliza un certificado autofirmado, es posible que se le pida que visite un sitio web proporcionado URL. Haga clic en el enlace y acepte el certificado antes de volver al Gestor de API y hacer clic de nuevo en Invocar.

    Prueba correcta

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.

  1. En el panel de navegación, haga clic en el icono Revelar Icono Editar.

    Desarrollar desde el panel de navegación

  2. Junto a la API Mapper, haga clic en el icono Menú El icono de opciones y seleccione Descargar.

    Opción de descarga

Qué ha hecho en esta guía de aprendizaje

  • Creada una nueva API
  • Contenido mapeado de un esquema JSON a otro esquema.