Okta Workflows é uma plataforma no-code para automatizar processos de identidade. A equipe de Workflows realiza horário de atendimento semanal para responder às perguntas dos builders.
Este artigo no blog é baseado em uma pergunta feita durante o horário de atendimento: Como ler um caminho JSON com notação de ponto em Workflows?
Para começar
Ao criar automações de Workflows, provavelmente será necessário ler valores de um objeto JSON. Por exemplo, a partir de um endpoint de API externo que retorna dados em formato JSON. Workflows possuem dois cartões para ajudar na leitura (recuperação) de valores de JSON:
- Objeto – Obter
- Objeto – obter vários
Utilize o seguinte JSON para demonstrar como os cartões funcionam.
{
"produto": "sorvete",
"ingredientes": {
"ingrediente": [{
"id": 100,
"tipo": "chocolate"
},
{
"id": 200,
"tipo": "baunilha"
},
{
"id": 300,
"tipo": "caramelo"
}
]
},
"loja": {
"inventario": {
"em_estoque": 100,
"encomendado": 50
}
}
}
A notação de ponto é um caminho que corresponde a um item em JSON.
Por exemplo, um caminho de produto retornará:
sorvete
Usando o objeto – cartão Get para ler JSON
Em Workflows, use o Objeto – Obter para ler um caminho JSON:
Usando o cartão Get para ler dados do JSON Path
Testando este cartão:
Testando o cartão Get
Vamos ver mais exemplos.
Usando o caminho ingredients.ingredient.0 resultará em:
{
"id": 100,
"type": "chocolate"
}
Resultado ao testar usando o cartão Objeto – Obter:
Usando a notação de ponto em caminhos.
Um ponto importante a lembrar é que o tipo de saída precisa corresponder ao tipo JSON. Se o caminho que foi inserido recuperar texto simples, o tipo deverá ser Texto. Se o caminho retornar um objeto, o tipo deverá ser definido como Objeto (caso contrário, o senhor obterá resultados incorretos).
Usando o exemplo acima, definir o tipo de saída como Texto resultará nisto:
Testando o cartão Get com um tipo de saída incorreto
Configurar o tipo de saída correto:
Testando o cartão Get com um tipo de saída correto
Este exemplo mostra como acessar um array com ingredients.ingredient.1.type:
Acessando um array usando um caminho com notação de ponto.
Observe que o tipo de saída está definido como Texto, pois a saída é uma string.
Mais um exemplo usando o caminho shop.inventory retornará
{
"instock": 100,
"ordered": 50
}
Testando o cartão Get para acessar um objeto JSON
Observe que o tipo de saída está definido como Objeto, pois a saída é um objeto.
Usando objeto – obter múltiplos para ler JSON
Objeto – o método Get retorna um único caminho JSON. O cartão Objeto – Obter Múltiplos funciona de forma semelhante e pode produzir vários caminhos. Você pode inserir quantos caminhos precisar como saída:
Usando o cartão Get Multiple
Observe que o tipo de saída é definido no caminho ao usar o cartão Objeto–Obter Vários.
Testando o cartão Get Multiple
O Avaliador Online JSONPath é uma ferramenta online onde é possível testar os caminhos em notação de ponto.
Ferramenta de avaliação online JSONPath
Se você precisar validar (e formatar) uma amostra JSON, use a ferramenta JSON Lint.
Esclareça suas dúvidas sobre os Workflows.
Você tem alguma dúvida sobre o Okta Workflows? Não tem certeza de como criar um fluxo? Participe do horário de atendimento comunitário semanal para obter ajuda.