API Connect Variables de contexto

Lista de variables de contexto de IBM® API Connect a las que puede hacer referencia al definir valores de parámetro predeterminados en una operación de ensamblaje, o utilizando la función getContext() al definir una política.

Para obtener más información sobre cómo implementar un componente de ensamblado, consulte «Incluir elementos en el ensamblado de la API de OpenAPI 2.0 », «Incluir elementos en el ensamblado de la API de OpenAPI 2.0 » y, para obtener información sobre cómo hacer referencia a variables de contexto, API Connect consulte «Referencias a variables en API Connect » y «Uso de variables de contexto en GatewayScript » y las políticas de XSLT con DataPower API Gateway.

Variables de contexto generales

Nota:
  • Para las variables de plan (como, por ejemplo, plan.name o plan.version), la información del plan sólo está disponible cuando la operación solicitada requiere identificación y el cliente pasa la comprobación de autenticación.
  • Si despliega la API en DataPower® Gateway (v5 compatible) , con la excepción del ID de cliente y el secreto de cliente, no se da soporte al paso de la entrada de formulario como parámetro en una API. Esta restricción no se aplica si despliega la API en DataPower API Gateway.
Tabla 1.API Connect variables de contexto
Nombre Descripción Permiso
DataPower API Gateway
onlyapi.catalog.id El ID del catálogo en el que se publica la API. Lectura/grabación
DataPower API Gateway
onlyapi.catalog.name El nombre del catálogo en el que se publica la API. Lectura/grabación
DataPower API Gateway
onlyapi.catalog.path El segmento de vía de acceso que representa este catálogo. Lectura/grabación
api.endpoint.address La dirección del punto final de Pasarela de API. Lectura/grabación
api.endpoint.hostname El nombre de host del punto final de Pasarela de API, según la solicitud de la aplicación. Lectura/grabación
DataPower API Gateway
onlyapi.id El identificador de la API. Lectura/grabación
api.name El nombre de la API; corresponde al campo x-ibm-name en la definición OpenAPI para la API. Lectura/grabación
api.operation.id El ID de la operación. Lectura/grabación
api.operation.path La vía de acceso de la operación. Lectura/grabación
api.org.id El ID de organización del proveedor de la API. Lectura/grabación
api.org.name El nombre abreviado de organización del proveedor de la API. Lectura/grabación
api.properties.propertyname El nombre de una propiedad de API personalizada. Los valores de propiedad son específicos del catálogo.
Nota:
  • Tiene permiso de escritura para una propiedad personalizada solo desde la interfaz de usuario, no desde GatewayScript.
Lectura/grabación
api.root La vía de acceso base de la API. Lectura/grabación
api.type El tipo de API; REST o SOAP. Lectura/grabación
api.version La serie de versión de la API. Lectura/grabación
client.app.id El ID de cliente o la clave de aplicación que se recibe en la solicitud. Lectura/grabación
DataPower API Gateway
onlyclient.app.'lifecycle-state' El estado de ciclo de vida de la aplicación cliente de llamada. Los valores posibles son los siguientes:
  • DEVELOPMENT
  • PRODUCTION (Valor predeterminado)
Lectura/grabación
DataPower API Gateway
onlyclient.app.metadata.key El valor de serie de una clave de metadatos de aplicación, donde clave es el nombre de la clave.

Puede añadir claves de metadatos a una aplicación utilizando el mandato apic apps:create o el mandato apic apps:update ; puede incluir las claves de metadatos en el parámetro de archivo de configuración que se pasa al mandato.

Por ejemplo:
apic apps:create myapp.yaml --server myserver.com 
--org myorg --catalog mycatalog --consumer-org mycorg
donde myapp.yaml contiene lo siguiente:
name: myapp
title: My test application
metadata:
  key1: value1
  key2: value2
  key3: value3
  key4: value4
  key5: value5
A continuación, puede recuperar el valor de una clave de metadatos en una política de ensamblaje de API utilizando una variable de contexto como la siguiente:
client.app.metadata.key3

Tenga en cuenta que la adición de metadatos de aplicación puede influir en el rendimiento de transacción de la pasarela.

Lectura/grabación
client.app.name El nombre de la aplicación identificado como que ha enviado la solicitud. Lectura/grabación
client.app.secret El secreto de cliente recibido en la solicitud. Lectura/grabación
client.app.type El tipo de la aplicación cliente que ha emitido la solicitud. Lectura/grabación
client.org.id La clave de identificación exclusiva de la organización que posee esta aplicación. Lectura/grabación
client.org.name El nombre de la organización que posee esta aplicación. Lectura/grabación
DataPower API Gateway
onlyclient.result El resultado de la política de seguridad de cliente, que es SUCCESS o FAILURE. Lectura/grabación
DataPower API Gateway
onlyclient.third_party.type El tipo de registro de usuarios utilizado para la autenticación de terceros de las credenciales de cliente extraídas. Los valores posibles son LDAP y auth-url. Lectura/grabación
DataPower API Gateway
onlyclient.third_party.headers La matriz de cabeceras añadidas a la solicitud enviada a ese URL de autenticación de API durante la autenticación de terceros. Lectura/grabación
DataPower API Gateway
onlyclient.third_party.response.authenticated Los resultados de autenticación de terceros. Los valores posibles son los siguientes:
  • true: la autenticación ha sido satisfactoria.
  • false: la autenticación ha fallado.
Lectura/grabación
DataPower API Gateway
onlyclient.third_party.response.user El usuario para la autenticación de terceros. Lectura/grabación
DataPower API Gateway
onlyclient.title El título de las credenciales que se reciben en la solicitud. Lectura/grabación
DataPower API Gateway
onlyerror.message El texto del mensaje de error. Lectura/grabación
DataPower API Gateway
onlyerror.name El nombre del error. Sólo lectura
DataPower API Gateway
onlylog Los datos de transacción recopilados en una acción de ensamblar registro. Lectura/grabación
message.attachments Matriz de archivos adjuntos en un mensaje de varias partes. Lectura/grabación
message.attachments[].body Las cargas útiles de archivo adjunto en un mensaje de varias partes. Lectura/grabación
message.attachments[].headers Las cabeceras de archivo adjunto en un mensaje de varias partes. Lectura/grabación
message.body Carga útil de la solicitud o mensaje de respuesta.
Nota: La variable de contexto message.body no está soportada con la función getContext() . En su lugar, utilice la función getvariable().
Lectura/grabación
message.headers.name El valor de la cabecera con nombre actual del mensaje o de la cabecera con nombre actual de la parte raíz de un mensaje de varias partes.

El segmento name no distingue entre mayúsculas y minúsculas.

Lectura/grabación
DataPower API Gateway
onlymessage.original.headers.name El valor del encabezado original con nombre del mensaje de notificación de entrega ( HTTP ). Cuando el conjunto contiene una acción de invocación, el valor se rellena automáticamente con el encabezado con nombre original del mensaje de respuesta del URL invocado.

El segmento name no distingue entre mayúsculas y minúsculas.

Sólo lectura
DataPower API Gateway
onlymessage.package.headers.name El valor de la cabecera con nombre actual del mensaje de varias partes.

El segmento name no distingue entre mayúsculas y minúsculas.

Lectura/grabación
message.status.code El código de estado HTTP de la respuesta. Lectura/grabación
message.status.reason La expresión de razón HTTP de la respuesta. Lectura/grabación
DataPower API Gateway
onlymessage.variables.name El valor de una propiedad del mensaje. Por ejemplo, cuando myvar es la propiedad del mensaje, puede recuperar el valor de la propiedad myvar leyendo message.variables.myvar. Lectura/grabación
plan.name El nombre del plan. Lectura/grabación
plan.id El identificador exclusivo del plan. Lectura/grabación
plan.rate-limit El límite de velocidad del plan, que es el número de llamadas de API por intervalo de tiempo. Lectura/grabación
DataPower API Gateway
onlyplan.rate-limit[index].hard-limit El valor de límite estricto para el esquema de límite de velocidad identificado por [index]. Lectura/grabación
DataPower API Gateway
onlyplan.rate-limit[index].value El valor del esquema de límite de velocidad identificado por [index]. La sintaxis es rate/interval. Lectura/grabación
plan.spaceId El identificador exclusivo del espacio en el que se encuentra el plan. Lectura/grabación
plan.spaceName El nombre del espacio en el que se encuentra el plan. Lectura/grabación
plan.version El número de versión del plan. Lectura/grabación
request.authorization La cabecera HTTP authorization analizada. Sólo lectura
request.body La carga útil de la solicitud entrante. Sólo lectura
request.content-type Valor de tipo de contenido normalizado. Sólo lectura
request.date Un objeto de fecha que representa aproximadamente cuándo la pasarela ha recibido la solicitud. Sólo lectura
request.headers.name El valor de la cabecera con nombre original de la solicitud HTTP o el valor de la cabecera con nombre actual de la parte raíz de un mensaje de varias partes.

El segmento name no distingue entre mayúsculas y minúsculas.

La cabecera de solicitud sólo se puede modificar en las políticas de preflujo. Para obtener más información, consulte la sección «Personalización de las políticas de preflujo ».

Lectura/grabación
DataPower API Gateway
onlyrequest.original.headers.name El valor del encabezado original nombrado de la solicitud HTTP. Esta variable sólo se crea cuando se modifica la cabecera de solicitud.

El segmento name no distingue entre mayúsculas y minúsculas.

Sólo lectura
DataPower API Gateway
onlyrequest.package.headers.name El valor de la cabecera con nombre de la solicitud de varias partes.

El segmento name no distingue entre mayúsculas y minúsculas.

Sólo lectura
DataPower API Gateway
onlyrequest.parameters Puede obtener los parámetros entrantes de los parámetros de vía de acceso y de consulta.
DataPower API Gateway
onlyrequest.parameters.name.locations Una matriz de series que especifican los tipos de parámetros asociados con el parámetro especificado en el nombre. Las palabras clave soportadas para los tipos de parámetros son las siguientes.
formData
El parámetro está en el cuerpo como datos de formulario
header
El parámetro está en la cabecera de solicitud
path
El parámetro está en la vía de acceso
query
El parámetro está en la consulta
Sólo lectura
DataPower API Gateway
onlyrequest.parameters.name.values Una matriz que contiene los valores de los tipos de parámetros asociados con el parámetro especificado en el nombre. Por ejemplo, cuando el primer valor es path en request.parameters.myparam.locations[], el primer valor en request.parameters.myparam.values[] es la matriz de valores de vía de acceso asociados con myparam.

Los parámetros de solicitud sólo se pueden modificar en las políticas de preflujo. Para obtener más información, consulte la sección «Personalización de las políticas de preflujo ».

Lectura/grabación
DataPower API Gateway
onlyrequest.original.parameters.name.values Una matriz que contiene los valores originales de los tipos de parámetro asociados con el parámetro especificado en nombre. Esta variable sólo se crea cuando se modifica un valor de parámetro de solicitud. Sólo lectura
request.path La sección de vía de acceso de request.uri que empieza por la vía de acceso base de la API, incluido el carácter ' /' que inicia la vía de acceso base. Sólo lectura
DataPower API Gateway
onlyrequest.protocol El protocolo utilizado para recibir la solicitud: http o https. Sólo lectura
request.querystring La serie de consulta de solicitud sin el interrogante inicial. Sólo lectura
request.search La serie de consulta de solicitud con el interrogante inicial. Sólo lectura
request.uri El URI de solicitud HTTP completo de la aplicación. Sólo lectura
request.verb El verbo HTTP de esta solicitud. Sólo lectura
DataPower API Gateway
onlysession.apiGateway La pasarela que recibe la solicitud. Sólo lectura
DataPower API Gateway
onlysession.apiGatewayName El nombre de la pasarela de API tal como se define en el Gestor de API. Sólo lectura
DataPower API Gateway
onlysession.clientAddress La dirección del cliente que ha enviado la solicitud. Sólo lectura
DataPower API Gateway
onlysession.domainName El nombre del dominio al que pertenece la pasarela. Sólo lectura
DataPower API Gateway
onlysession.globalTransactionID El ID de transacción global en los registros. Sólo lectura
DataPower API Gateway
onlysession.localAddress La dirección de la pasarela en DataPower® Gateway. Sólo lectura
DataPower API Gateway
onlysession.timeStarted La hora a la que la pasarela ha empezado a procesar la solicitud. Sólo lectura
DataPower API Gateway
onlysession.transactionID El ID de transacción de la solicitud de pasarela. Sólo lectura
system.datetime Devuelve una serie que representa la fecha y la hora actuales en el huso horario del sistema de la pasarela. Sólo lectura
system.time

Devuelve una serie que representa la hora actual en el huso horario del sistema de la pasarela.

Sólo lectura
system.time.hour Devuelve un número comprendido entre 0 y 23 que representa la hora actual en el huso horario del sistema de la pasarela. Sólo lectura
system.time.minute Devuelve un número comprendido entre 0 y 59 que representa el minuto de la hora actual en el huso horario del sistema de la pasarela. Sólo lectura
system.time.seconds Devuelve un número comprendido entre 0 y 59 que representa el segundo de la hora actual en el huso horario del sistema de la pasarela. Sólo lectura
system.date

Devuelve una serie que representa la fecha actual en el huso horario del sistema de la pasarela.

Sólo lectura
system.date.day-of-week Devuelve un número comprendido entre 1 y 7 (lunes a domingo) que representa el día de la semana en el huso horario del sistema de la pasarela. Sólo lectura
system.date.day-of-month Devuelve un número comprendido entre 1 y 31 que representa el día de la semana en el huso horario del sistema de la pasarela. Sólo lectura
system.date.month Devuelve un número comprendido entre 1 y 12 que representa el mes en el huso horario del sistema de la pasarela. Sólo lectura
system.date.year Devuelve un número de cuatro dígitos que representa el año en el huso horario del sistema de la pasarela. Sólo lectura
system.timezone Devuelve un identificador ISO 8601 de huso horario del sistema para la pasarela, que puede incluir un signo, una hora de dos dígitos y minutos. Por ejemplo, -04:00. Sólo lectura

Variables de contexto de certificado de aplicación

En la siguiente tabla se describen las variables de contexto disponibles cuando se utiliza un certificado para verificar el acceso a una API, aunque estas variarán en función del mecanismo de firma que se utilice; para obtener más información, consulte la especificación « X.509 : Public Key Infrastructure Certificate and CRL Profile » de Internet.

Tabla 2. Variables de contexto del certificado de la aplicación
Nombre Descripción
application.certificate.Base64 Formato Base64.
application.certificate.fingerprint Huella dactilar
application.certificate.Version Versión
application.certificate.SerialNumber Número de serie
application.certificate.SignatureAlgorithm Algoritmo de firma
application.certificate.Issuer El emisor del certificado
application.certificate.Subject Asunto
application.certificate.NotBefore No es válido antes de esta fecha
application.certificate.NotAfter No es válido después de esta fecha
application.certificate.SubjectPublicKeyAlgorithm Algoritmo de la clave pública del asunto
application.certificate.SubjectPublicKeyBitLength Longitud de la clave pública del asunto
application.certificate.KeyValue.type Diversas variables de contexto que dependen del algoritmo y la clave. Las siguientes, son variables de contexto posibles:
  • application.certificate.KeyValue.RSAKeyValue.Modulus
  • application.certificate.KeyValue.RSAKeyValue.Exponent

Variables de contexto de registro de actividad de API

Si el registro de actividad está habilitado para una API, se crea una variable de contexto log; la variable de contexto log contiene los datos relacionados con un suceso de ejecución de API. Al finalizar la ejecución de la API, la variable de contexto log se escribe en un registro de sucesos de API que se almacena para el acceso posterior por parte del análisis de API. Para obtener detalles de los campos contenidos en la variable de contexto log , consulte Campos de registro de sucesos de API.

La forma en que se habilita y configura el registro de actividad depende del tipo de pasarela que utilice, de la manera siguiente:
La configuración del registro de actividad define el contenido predeterminado de la variable de contexto log, pero puede modificarla en el ensamblaje de API; por ejemplo:

Variables de contexto de GraphQL

La variables de consulta y respuesta de GraphQL generadas desde acciones de proceso y ensamblaje de API se almacenan en el contexto de API en las variables de contexto message.attributes.graphql.

Tabla 3. GraphQL variables de contexto
Nombre Descripción
message.attributes.graphql Los atributos de consulta y respuesta del mensaje de GraphQL.
message.attributes.graphql.query Los atributos de una consulta de GraphQL, que incluyen la serie de consulta, el nombre de operación y las variables.
message.attributes.graphql.query.query La serie de consulta de GraphQL.
message.attributes.graphql.query.variables La correlación de variables de GraphQL.
message.attributes.graphql.query.operationName El nombre de la operación que debe ejecutarse.
message.attributes.graphql.query.operationType El tipo de la operación que debe ejecutarse.
message.attributes.graphql.request Los atributos de la solicitud de GraphQL.
message.attributes.graphql.request.fieldCost La suma ponderada del coste de todos los campos a los que se accede en la consulta. El coste de cada acceso de campo se configura en el esquema. Este recuento incluye campos cuyos costes de campo no se han establecido en 0.0.
message.attributes.graphql.request.fieldCounts El número máximo de veces que la consulta dada puede recuperar cada campo. Este número es igual al número de veces que debe ejecutarse el resolutor responsable de generar el valor del campo. Este recuento incluye campos cuyos costes de campo no se han establecido en 0.0.
message.attributes.graphql.request.typeCost La suma ponderada del coste de todos los tipos recuperados en la consulta. El coste de cada tipo se configura en el esquema. Este recuento incluye los tipos cuyos costes de tipo no están establecidos en 0.0.
message.attributes.graphql.request.typeCounts El número máximo de veces que la consulta dada puede recuperar un valor de cada tipo. Este recuento incluye los tipos cuyos costes de tipo no están establecidos en 0.0.
message.attributes.graphql.response.fieldCost La suma ponderada del coste de todos los campos en la respuesta a la consulta. El coste de cada acceso de campo se configura en el esquema. Si esta suma no puede calcularse en función de la configuración de análisis de la solicitud, el coste de campos se expresa como el valor entero máximo que puede asignarse.
message.attributes.graphql.response.fieldCounts El número de veces que se ha recuperado cada campo en la respuesta a la consulta. Este número es igual al número de veces que debe ejecutarse el resolutor responsable de generar el valor del campo. Si esta suma no puede calcularse en función de la configuración de análisis de la solicitud, el recuento de campos se expresa como el valor entero máximo que puede asignarse.
message.attributes.graphql.response.typeCost La suma ponderada del coste de todos los tipos en la respuesta a la consulta. El coste de cada tipo se configura en el esquema. Si esta suma no puede calcularse en función de la configuración de análisis de la solicitud, el coste de tipos se expresa como el valor entero máximo que puede asignarse.
message.attributes.graphql.response.typeCounts El número de veces que un valor de cada tipo se encontraba en la respuesta a la consulta. Si esta suma no puede calcularse en función de la configuración de análisis de la solicitud, el recuento de tipos se expresa como el valor entero máximo que puede asignarse.
message.attributes.parse.GraphQLIntrospection El tipo de introspección de la acción de introspección de GraphQL del ensamblaje. Cuando se analiza una consulta GraphQL, esta variable de contexto se llena con uno de los valores siguientes:
  • not-introspection
  • custom-introspection
  • default-introspection