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
- Para las variables de plan (como, por ejemplo,
plan.nameoplan.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.
| Nombre | Descripción | Permiso |
|---|---|---|
|
El ID del catálogo en el que se publica la API. | Lectura/grabación |
|
El nombre del catálogo en el que se publica la API. | Lectura/grabación |
|
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 |
|
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:
|
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 |
|
El estado de ciclo de vida de la aplicación cliente de llamada. Los valores posibles son los siguientes:
|
Lectura/grabación |
|
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: donde myapp.yaml contiene lo siguiente: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: 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 |
|
El resultado de la política de seguridad de cliente, que es SUCCESS o FAILURE. |
Lectura/grabación |
|
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 |
|
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 |
|
Los resultados de autenticación de terceros. Los valores posibles son los siguientes:
|
Lectura/grabación |
|
El usuario para la autenticación de terceros. | Lectura/grabación |
|
El título de las credenciales que se reciben en la solicitud. | Lectura/grabación |
|
El texto del mensaje de error. | Lectura/grabación |
|
El nombre del error. | Sólo lectura |
|
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 |
|
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 |
|
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 |
|
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 |
|
El límite de velocidad del plan, que es el número de llamadas de API por intervalo de tiempo. | Lectura/grabación |
|
El valor de límite estricto para el esquema de límite de velocidad identificado por [index]. |
Lectura/grabación |
|
El valor del esquema de límite de velocidad identificado por [index]. La sintaxis es rate/interval. |
Lectura/grabación |
|
El identificador exclusivo del espacio en el que se encuentra el plan. | Lectura/grabación |
|
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 |
|
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 |
|
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 |
|
Puede obtener los parámetros entrantes de los parámetros de vía de acceso y de consulta. | |
|
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.
|
Sólo lectura |
|
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 |
|
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 |
|
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 |
|
La pasarela que recibe la solicitud. | Sólo lectura |
|
El nombre de la pasarela de API tal como se define en el Gestor de API. | Sólo lectura |
|
La dirección del cliente que ha enviado la solicitud. | Sólo lectura |
|
El nombre del dominio al que pertenece la pasarela. | Sólo lectura |
|
El ID de transacción global en los registros. | Sólo lectura |
|
La dirección de la pasarela en DataPower® Gateway. | Sólo lectura |
|
La hora a la que la pasarela ha empezado a procesar la solicitud. | Sólo lectura |
|
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.
| 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:
|
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.
- Si utiliza el DataPower API Gateway, debe configurar el registro de actividades en los ajustes de configuración de la API; consulte «Configuración del registro de actividades » ( OpenAPI2.0 ) o «Configuración del registro de actividades » ( OpenAPI3.0 ).
- Si utiliza, DataPower Gateway (v5 compatible) puede configurar el registro de actividades añadiendo una política de registro de actividades al ensamblado de la API.
log, pero puede modificarla en
el ensamblaje de API; por ejemplo:- Añade tus propios valores de datos mediante una política de «Establecer variable ».
- Elimine o censure valores de datos mediante una política de censura; consulte «Censura - DataPower API Gateway » o «Censura - DataPower Gateway » (compatible con v5 ).
Modifique o sustituya la variable logde contexto mediante una política de registro.
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.
| 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:
|