Como receber o estado atual do problema via webhook?
A Planning API trabalha de forma assíncrona. Isso significa que ao enviar um problema, um ID é retornado e através desse ID será possível consultar o estado atual do processamento e, quando concluído, a solução do problema.
Utilizando o parâmetro callback
na requisição para a Planning, é possível informar um webhook para receber uma requisição a cada mudança de estado no processamento do problema.
Assim não será necessário consultar o status do problema para verificar se o mesmo foi processado. A API irá notificar o webhook quando a solução estiver disponível para consulta.
Os seguintes parâmetros são necessários:
url
– URL com o endereço que irá receber o callback.user
– (Opcional) Texto com o nome do usuário caso o endpoint precisar de autenticação.password
– (Opcional) Texto com a senha caso o endpoint precisar de autenticação.
Abaixo um exemplo com a utilização do callback:
"callback": { "password": "nome_usuario", "url": "https://enqkbfcos3dhgchuikd.webhook.net", "user": "senha" },
O método HTTP é um POST. As informações de usuário e senha vão em headers user
e password
. Será enviado um JSON com o formato e campos abaixo:
[{ id: String, jobId: String, type: Enum (STATUS_CHANGE, ERROR, STEP_CHANGE, PERCENT_CHANGE, WARNING), description: String, createdAt: Date }]
O callback enviará dados a cada mudança no estado de processamento. O callback da Planning API enviará cada estado junto com o ID do problema no body. Assim, uma vez atingido o estado "SOLVED"
, pode-se criar um gatilho para obter a solução. Abaixo a lista de todos os estados enviados:
1- Status ENQUEUED [0] createdAt: 1617034915185 description: ENQUEUED jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE [1] createdAt: 1617034915255 description: 1 jobId: 6061fea38031257fe109f0b7 type: PERCENT_CHANGE 2-Status CONVERT_TO_MATRIX [0] createdAt: 1617034915164 description: CONVERT_TO_MATRIX jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE 3- Status PROCESSING [0] createdAt: 1617034915335 description: PROCESSING jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE 4- Status MATRIX_CALCULATION [0] createdAt: 1617034915608 description: MATRIX_CALCULATION jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE 5- Status progress 60% [0] createdAt: 1617034916863 description: progress 60% jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE 6- Status CALCULATE_PLANNING [0] createdAt: 1617034917633 description: CALCULATE_PLANNING jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE [1] createdAt: 1617034917740 description: 60 jobId: 6061fea38031257fe109f0b7 type: PERCENT_CHANGE 7- Status PRE_TREATMENTS [0] createdAt: 1617034918058 description: PRE_TREATMENTS jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE 8- Status INITIAL_CONSTRUCTION [0] createdAt: 1617034918207 description: INITIAL_CONSTRUCTION jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE 9- Status IMPROVEMENT [0] createdAt: 1617034918346 description: IMPROVEMENT jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE 10- Status POST_TREATMENTS [0] createdAt: 1617034918535 description: POST_TREATMENTS jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE 11- Status SOLVED [0] createdAt: 1617034918777 description: SOLVED jobId: 6061fea38031257fe109f0b7 type: STATUS_CHANGE [1] createdAt: 1617034918885 description: 100 jobId: 6061fea38031257fe109f0b7 type: PERCENT_CHANGE [2] createdAt: 1617034918992 description: TERMINATE jobId: 6061fea38031257fe109f0b7 type: STEP_CHANGE