Skip to content

API de Inicialização de Automação

Esta página detalha o endpoint da API REST para iniciar uma automação do Datallog. Isso é útil para integrar fluxos de trabalho do Datallog com outros serviços ou acioná-los programaticamente.

Endpoint

Para iniciar uma automação, envie uma requisição POST para o seguinte endpoint:

POST https://mwm.datallog.com/api/start-automation/<project_name>/<automation_name>

Autenticação

Todas as requisições à API devem ser autenticadas usando um token bearer. Você deve incluir os cabeçalhos Authorization e X-Api-Key com seu token de API.

http
Authorization: Token <YOUR_AUTHORIZATION_TOKEN>
X-Api-Key: <YOUR_X_API_KEY>

TIP

Você pode gerar e gerenciar seus tokens de API na seção Settings (Configurações) do seu painel Datallog.

Parâmetros de Caminho

ParâmetroTipoObrigatórioDescrição
<project_name>stringSimO nome do seu projeto, conforme criado com o comando datallog create-project.
<automation_name>stringSimO nome da automação dentro do projeto, conforme criado com o comando datallog create-automation.

Corpo da Requisição

O corpo da requisição deve ser um objeto JSON com os seguintes campos opcionais:

ts
interface StartAutomation {
  webhook?: string;
  webhook_header?: Record<string, string>;
  seed?: Record<string, any>;
}
CampoTipoObrigatórioDescrição
webhookstringNãoUma URL específica para a qual o resultado final desta execução será enviado. Se este campo for omitido ou deixado em branco, o webhook padrão configurado para a automação será usado.
webhook_headerRecord<string, string>NãoUm objeto JSON de pares chave-valor representando cabeçalhos HTTP personalizados a serem enviados com a requisição do webhook. Isso pode ser usado para autenticação ou para passar metadados.
seedRecord<string, any>NãoOs dados JSON iniciais passados como argumento para o @core_task da automação. Este é o equivalente na API ao uso do argumento --seed ou --seed-file ao executar uma automação com a CLI do Datallog.

TIP

Os dados de seed que você fornece aqui são passados diretamente para o primeiro argumento da sua função @core_task. Por exemplo, se você enviar {"seed": {"message": "Olá da API"}}, o parâmetro seed na sua função Python será {'message': 'Olá da API'}.

Exemplos

Vamos supor que temos um projeto chamado my-first-datallog-project e uma automação chamada hello-automation, conforme mostrado no guia de Introdução.

Exemplo 1: Execução básica com dados de seed

Este exemplo inicia a automação e fornece dados iniciais para o core_task.

cURL

bash
curl -X POST \
  https://mwm.datallog.com/api/start-automation/my-first-datallog-project/hello-automation \
  -H "Authorization: <YOUR_AUTHORIZATION_TOKEN>" \
  -H "X-Api-Key: <YOUR_X_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "seed": {
      "message": "Hello from the API!"
    }
  }'

Python (requests)

python
import requests
import json

authorization_token = "<YOUR_AUTHORIZATION_TOKEN>"
x_api_key = "<YOUR_X_API_KEY>"
project_name = "my-first-datallog-project"
automation_name = "hello-automation"

url = f"https://mwm.datallog.com/api/start-automation/{project_name}/{automation_name}"

headers = {
    "Authorization": authorization_token,
    "X-Api-Key": x_api_key,
    "Content-Type": "application/json"
}

payload = {
    "seed": {
        "message": "Hello from the API!"
    }
}

response = requests.post(url, headers=headers, data=json.dumps(payload))

print(response.status_code)
print(response.json())

Exemplo 2: Execução com um webhook personalizado

Este exemplo inicia a automação e direciona a saída final para um endpoint personalizado com um header de autenticação específico.

cURL

bash
curl -X POST \
  https://mwm.datallog.com/api/start-automation/my-first-datallog-project/hello-automation \
  -H "Authorization: <YOUR_AUTHORIZATION_TOKEN>" \
  -H "X-Api-Key: <YOUR_X_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook": "https://my-service.com/datallog-results",
    "webhook_header": {
      "x-api-key": "my-secret-service-key"
    },
    "seed": {
      "message": "Data for my custom webhook"
    }
  }'

Respostas

Resposta de Sucesso

Em uma requisição bem-sucedida para iniciar a automação, a API retornará um código de status 202 Accepted. O corpo conterá um execution_id único que você pode usar para rastrear o status da execução.

  • Código: 200 OK
    Descrição: A automação foi iniciada com sucesso.
  • Corpo:
json
{
  "status": "success",
  "message": "Automation 'hello-automation' started successfully.",
  "execution_id": "exec_abc123def456"
}

Respostas de Erro

Se a requisição falhar, a API retornará um código de erro apropriado e uma mensagem descritiva.

  • Código: 403 Forbidden
    Motivo: O usuário não tem permissão para acessar o projeto ou automação especificados.

    json
    {
      "message":"This Project does not exist. consult API"
    }
  • Código: 403 Forbidden
    Motivo: O usuário não tem permissão para acessar o projeto ou automação especificados.

    json
    {
      "message": "This Automation does not exist. consult API."
    }
  • Código: 401 Unauthorized
    Motivo: A requisição não incluiu credenciais de autenticação válidas.

    json
    {
      "detail": "Authentication credentials were not provided."
    }