Okta Workflows es una plataforma sin código para automatizar los procesos de identidad. El equipo de Workflows celebra horas de oficina semanales donde responden a las preguntas de los desarrolladores.
Esta publicación de blog se basa en una pregunta formulada durante el horario de oficina: ¿Cómo leer una ruta JSON con notación de puntos en Workflows?
Primeros pasos
Al crear automatizaciones de Workflows, probablemente necesitará leer valores de un objeto JSON. Por ejemplo, desde un extremo de API externo que devuelve datos en formato JSON. Workflows tienen dos tarjetas para ayudar a leer (recuperar) valores de JSON:
- Objeto – Obtener
- Objeto – obtener múltiples
Utilice el siguiente JSON para mostrar cómo funcionan las tarjetas.
{
"producto": "helado",
"ingredientes": {
"ingrediente": [{
"id": 100,
"tipo": "chocolate"
},
{
"id": 200,
"tipo": "vainilla"
},
{
"id": 300,
"tipo": "caramelo"
}
]
},
"tienda": {
"inventario": {
"instock": 100,
"pedidos": 50
}
}
}
La notación de puntos es una ruta que corresponde a un elemento en JSON.
Por ejemplo, una ruta de producto devolverá:
helado
Uso del objeto: obtener la tarjeta para leer JSON
En los Workflows, utilice el objeto – get para leer una ruta JSON:
Uso de la tarjeta Get para leer datos de ruta JSON
Probando esta tarjeta:
Probando la tarjeta Get
Veamos más ejemplos.
Utilizando la ruta ingredients.ingredient.0 dará como resultado:
{
"id": 100,
"type": "chocolate"
}
Resultado al realizar la prueba utilizando la tarjeta objeto-obtener:
Utilizando la notación de puntos en la ruta
Un aspecto importante a tener en cuenta es que el tipo de salida debe coincidir con el tipo JSON. Si la ruta que ingresó recupera texto sin formato, el tipo debe ser Texto. Si la ruta recupera un objeto, entonces el tipo debe establecerse en Objeto (de lo contrario, obtendrá resultados incorrectos).
Utilizando el ejemplo anterior, al establecer el tipo de salida en Texto se obtendrá lo siguiente:
Probando la tarjeta Get con un tipo de salida incorrecto.
Configurar el tipo de salida correcto:
Probando la tarjeta Get con un tipo de salida correcto.
Este ejemplo muestra cómo acceder a una matriz con ingredients.ingredient.1.type:
Acceso a un array mediante una ruta con notación de puntos.
Tenga en cuenta que el tipo de salida está configurado como Texto ya que la salida es una cadena de texto.
Otro ejemplo usando la ruta de shop.inventory devolverá
{
"en stock": 100,
"pedido": 50
}
Probando la tarjeta Get para acceder a un objeto JSON.
Tenga en cuenta que el tipo de salida está configurado como Objeto, ya que la salida es un objeto.
Uso de objetos: obtenga varios para leer JSON
Objeto – obtiene como resultado una única ruta JSON. La tarjeta Objeto – obtener múltiples funciona de manera similar y puede generar múltiples rutas. Introduzca cualquier número de rutas que necesite como resultado:
Usando la tarjeta Get Multiple
Tenga en cuenta que el tipo de salida se establece en la ruta cuando se utiliza la tarjeta Objeto–Obtener varios.
Probando la función Obtener varias tarjetas
El evaluador en línea de JSONPath es una herramienta en línea donde puedes probar tus rutas con notación de puntos.
Herramienta evaluadora en línea de JSONPath
Si necesita validar (y formatear) una muestra JSON, utilice la herramienta JSON Lint.
Obtén respuesta a tus preguntas sobre Workflows.
¿Tienes alguna pregunta sobre Okta Workflows? ¿No sabes cómo crear un flujo? Únase a las horas de oficina comunitarias semanales para obtener ayuda.