map

Utilice la política map para transformar el flujo de ensamblaje y especificar relaciones entre las variables.

Soporte de pasarela

Tabla 1. Tabla que muestra qué puertas de enlace admiten esta política y la versión correspondiente de la misma
Pasarela Versión de política
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.0.0

2.1.0 (DataPower API Gateway Versión 10.5.0.0 o posterior)

En este tema se describe cómo configurar la política en la fuente de datos de « OpenAPI »; para obtener más información sobre cómo configurar la política en la interfaz de usuario de Assembly, consulte «Map ».

Acerca de

Para obtener información sobre el uso y la estructura de la política de mapas, consulte «La estructura de la política de mapas ». Para obtener más información sobre las propiedades de la API que afectan a la política del mapa, consulta Propiedades de la API.

La política map tiene el formato siguiente:

- map
   version: version
   title: title
   description: description

   inputs:
      - input_1:
         variable: context_1
         $ref: '#/definitions/definition_1'
      - input_2
         variable: context_2
         type: type_2
         content: content_type

   outputs:
      - output_3
         variable: context_3
         type: type_3

   actions:
      - set: output_3.output_property_3
        from: input_1.input_property_1

      - set: output3.output_property_3
        from:
         - input1.input_property_1
         - input2.input_property_2
        value: 'script_A'
        default: 'default_A'

      - create: output3.output_property_3
        from: input1.input_property_1
        foreach: input1.input_property_1
        actions:
          - further_actions
   options:
        .
        .
        .
    advanced_XML_and_general_configuration_options
        .
        .
        .

Propiedades

Tabla 2. Asistencia técnica de Gateway
Propiedad Obligatorio Descripción Tipo de datos Pertenece a
version El número de versión de la política serie N/D
title Nee Título de la política. Serie N/D
description Nee Una descripción de la política. Serie N/D
inputs Nee Una matriz que lista las entradas de la política map. Objecto N/D
outputs Una matriz que lista las salidas de la política map. Objecto N/D
variable Una referencia a la variable de contexto que es la ubicación de la variable de entrada o de salida. Serie inputs o outputs
$ref 1 Una referencia a la definición del tipo de la variable. Serie inputs o outputs
type 1 El tipo de la variable. Serie inputs o outputs
content Nee El tipo de contenido de la variable: application/xml o application/json. Si se selecciona Ninguno o el campo no está incluido, el tipo se trata como JSON. Serie inputs o outputs
actions Lista las acciones que debe realizar la política map. Objecto N/D
set 2 Especifica por nombre la variable de salida que la acción va a establecer en un valor. Serie actions
create 2 Especifica por nombre la variable de salida a la que la acción va a añadir un valor. Serie actions
from Nee Especifica por nombre las variables de entrada utilizadas por la acción. Serie actions
value Nee Contiene un script que correlaciona y transforma variables de entrada en variables de salida. Serie actions
default Nee Contiene un valor estático o una referencia de variable incorporada que se debe aplicar a la salida cuando no se proporciona ningún valor de entrada. Para obtener información sobre las referencias de variables en línea, consulte Referencias en línea. Serie actions
foreach Nee Especifica por nombre una matriz para la que se deben realizar acciones adicionales para cada elemento. Serie actions
includeEmptyXMLElements Nee Si se establece en true, se incluyen elementos XML vacíos en la salida de la política map. Establézcala en false si no desea que los elementos XML vacíos se incluyan en la salida de la política de correlación.

El valor predeterminado es true.

Booleano options
namespaceInheritance Nee Si se establece en true, los espacios de nombres XML se heredan del elemento padre. Establézcala en false si desea que la política map utilice espacios de nombres explícitos.

El valor predeterminado es true.

Booleano options
inlineNamespaces Nee Si se establece en true, los espacios de nombres XML se insertarán en el documento donde se utilicen por primera vez. Establézcala en false si desea que todos los espacios de nombres se definan en el elemento raíz.

El valor predeterminado es true.

Booleano options
DataPower API Gateway
onlymapResolveXMLInputDataType Nee Si se establece en true, los elementos XML cuyo esquema se ha configurado como de tipo booleano o numérico se convertirán a dicho tipo de datos. Establézcalo en false si desea que los valores de los elementos XML se devuelvan como una serie. Booleano options
DataPower API Gateway
onlymapParseXMLOutput Nee Si se establece en true, la política de correlación escribirá la salida XML en message.body en forma de documento XML analizado. De forma predeterminada, el XML se generará como una serie XML. La salida de XML a cualquier otra variable se escribirá siempre como una serie XML.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapXMLEmptyElement Nee Esta propiedad controla cómo la política map maneja la salida de un elemento XML vacío. Especifique uno de los valores siguientes:
  • string (la opción predeterminada): un elemento XML vacío se maneja como una serie vacía.
  • null: un elemento XML vacío se maneja como un valor nulo.
  • none: los datos se ignoran.
  • Solo pasarela de API de DataPowerstring-badgerfish: El valor de un elemento XML vacío se considera una cadena vacía. El valor de serie vacía se colocará en una propiedad de valor JSON badgerfish.
  • Solo pasarela de API de DataPowernull-badgerfish: El valor de un elemento XML vacío se considera nulo. El valor nulo se colocará en una propiedad de valor JSON badgerfish. No se producirá una correlación de este elemento con una propiedad de salida JSON a menos que la propiedad mapNullValue se establezca en true.
Serie options
DataPower API Gateway
onlymapArrayFirstElementValue Nee Si se establece en true, si se encuentra una matriz en el cruce de la entrada, sólo se utiliza el primer elemento. Establézcala en false si desea que la política map utilice todos los elementos de matriz.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapResolveApicVariables Nee Si se establece en true, se resuelven las referencias de variable API Connect encontradas en las propiedades de correlación. Establézcalo en false si desea que la política de correlación ignore las referencias de variable API Connect en las políticas de correlación.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapNullValue Nee Si se establece en true, un valor de propiedad de entrada con un valor nulo se correlaciona con el documento de salida. Establézcala en false si desea que la política map ignore todos los valores de entrada nulos.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapOptimizeSchemaDefinition Nee Si se establece en true, la evaluación de tipos de esquema complejos maneja las referencias de tipo circular de forma optimizada. Establézcala en false para evaluar estos tipos de esquema de forma estándar.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapEmulateV4DefaultRequiredProps Nee Si se establece en true, se generan los valores predeterminados en la salida de las propiedades necesarias que no están correlacionadas o para las que no existen datos de entrada, en los casos específicos siguientes:
  • Una matriz consta de objetos que contienen una o varias propiedades necesarias.
  • Un objeto que sea opcional tiene una o varias propiedades hijo que son necesarias.

De forma predeterminada, estas propiedades necesarias no están presentes en la salida. Si se establece esta propiedad en true, estas propiedades necesarias estarán presentes en la salida. Si el esquema de salida define una propiedad default para la propiedad de salida, se utiliza el valor predeterminado especificado, de lo contrario, se asigna un valor predeterminado que depende del tipo de datos, como se indica a continuación:

  • String: serie vacía ("")
  • Number: 0
  • Boolean: false
  • Object: objeto vacío
  • Array: matriz vacía
Ejemplo 1
Los datos de entrada tienen la matriz de objetos siguiente:
[{“a”: “value1”}, {“a”: “value2", "b": “value3”}]

El esquema de salida define que el objeto de salida tiene dos propiedades, a y b, de las cuales b es necesaria. La política map define las correlaciones siguientes:

  • input.array.a a output.array.a
  • input.array.b a output.array.b

Si esta propiedad se establece en true, y b no está correlacionado o no tiene datos de entrada, entonces a b se le asigna un valor predeterminado de una serie vacía y la salida es la que se indica a continuación:

[{“a”: “value1", "b": ""}, {"a": "value2", "b": "value3"}]
Ejemplo 2
El esquema de salida define la estructura siguiente:
{"a" : {"b" : {"c" : "value1", "d" : "value2"} } }

La propiedad b es opcional pero la propiedad d contenida en b es necesaria.

La política map define una correlación para output.a.b.c.

Si esta propiedad se establece en true y d no está correlacionado, entonces a d se le asigna una valor predeterminado de una serie vacía, y la salida es la que se indica a continuación:

{"a" : {"b" : {"c" : "value1", "d" : ""} } }

Si esta propiedad se establece en false, no se crean estas propiedades necesarias con sus valores predeterminados en la salida.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapEnablePostProcessingJSON Nee Si se establece en true, se realiza un procesamiento posterior de la salida de JSON correlacionada. El procesamiento posterior de la salida JSON utilizará el esquema de salida para garantizar que los valores de propiedad tienen el mismo tipo de datos que se ha definido en el esquema. También se normalizarán los valores de propiedad de salida que tienen una sintaxis JSON Badgerfish debido a la correlación de objetos de una entrada XML. Establézcala en false si no desea realizar el proceso posterior de la salida de JSON correlacionada.

El valor predeterminado es false.

Booleano options
DataPower API Gateway
onlymapCreateEmptyArray Nee Esta propiedad controla cómo maneja la política map la salida de una matriz vacía. Especifique uno de los valores siguientes:
  • all: salida de todas las matrices vacías, incluidas las matrices hijas vacías.
  • parent: generar sólo el valor de matriz vacío de la propiedad actual. No se intentan acciones de correlación hijas de esta propiedad.
  • none: impide que se generen valores de matriz de salida vacíos.

El valor predeterminado es all.

Serie options
DataPower API Gateway
onlymapReferenceLimit Nee Establezca el valor de esta propiedad en un valor entero que especifique el número máximo permitido de iteraciones de una definición de esquema circular.

El valor predeterminado es 1, lo que significa que no se permiten las definiciones de esquema circular. El valor máximo posible es 5. Si especifica un valor mayor que 5, se asume un valor de 5. Si especifica un valor no numérico, se adopta el valor 1.

Serie options
messagesInputData Nee Esta propiedad define el nivel de gravedad para los mensajes de registro relacionados con los datos de entrada. Especifique uno de los valores siguientes:
  • error
  • warn
  • info
Serie options
DataPower API Gateway
onlymapEmulateV4EmptyJSONObject Nee Si una correlación falla porque su entrada no está presente y no hay ninguna correlación predeterminada configurada, el comportamiento predeterminado es no realizar ningún cambio en la correlación de salida. Establezca esta propiedad en true para crear un objeto vacío para el padre de la correlación de destino, emulando el comportamiento de IBM® API Management Version 4.0.
Ejemplo
La política map define una correlación para output.a.b.c.
Si hay datos de entrada presentes, la salida es la siguiente:
{
  "a": {
    "b": {
      "c": "inputvalue"
    }
  }
}
Si no hay datos de entrada y la propiedad mapEmulateV4EmptyJSONObject se establece en true, la salida es la siguiente:
{
  "a": {
    "b": {
    }
  }
}
Las propiedades a y b se crean, pero el valor de b es un objeto vacío.

El valor predeterminado es false.

Booleano options

1 Debe haber como mínimo un $ref o un type en la descripción de una variable.

2 Debe haber como mínimo un set o un create en un campo actions.

Ejemplo

      - map:
          version: 1.0.0
          title: Output mapping
          inputs:
            Monthly_cost:
              schema:
                type: double
              variable: loan_invoke.body.monthly_payment
              content: application/json
            Duration:
              schema:
                type: integer
              variable: request.parameters.duration
          outputs:
            Quote_Output:
              schema:
                $ref: '#/definitions/Quote_Output'
              variable: message.body
              content: application/json
          actions:
            - set: Quote_Output.monthly_repayment
              from: Monthly_cost
              value: ''
            - set: Quote_Output.total_cost
              from:
                - Duration
                - Monthly_cost
              value: '$(Duration)*$(Monthly_cost)'
          description: Maps and transforms contexts to the operation output.
          options:
              includeEmptyXMLElements: false
              namespaceInheritance: false
              inlineNamespaces: false
              DataPower API Gateway
onlymapResolveXMLInputDataType: true
              DataPower API Gateway
onlymapXMLEmptyElement: null
              DataPower API Gateway
onlymapArrayFirstElementValue: false
              DataPower API Gateway
onlymapResolveApicVariables: false
              DataPower API Gateway
onlymapNullValue: true
              DataPower API Gateway
onlymapOptimizeSchemaDefinition: true
              DataPower API Gateway
onlymapCreateEmptyArray: parent
              DataPower API Gateway
onlymapReferenceLimit: 5
              messagesInputData: warn
              mapEmulateV4EmptyJSONObject: true