Ir para o conteúdo

Integração industrial Edge ​

Índice de endpoints · Modelos

API-143 — Obter configuração para o coletor ​

GET /api/mes/edge/config

Finalidade: Obter configuração para o coletor.

Fonte: src/main/java/com/wester/storage/mes/MesEdgeController.java:12 — MesEdgeController.config.

Autenticação, autorização e perfis: Chave X-Edge-Key válida (MES_EDGE_KEY com pelo menos 16 bytes). JWT não substitui a chave. Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: X-Edge-Key: <CHAVE>. Accept: application/json recomendado.

Parâmetros:

NomeLocalTipoObrigatórioPadrão
machineIdqueryStringSim—
edgeIdqueryStringNão—

Corpo: não declarado; não enviar corpo.

Resposta de sucesso: MesConfig. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "machineId": "Exemplo",
  "revision": 1,
  "executionId": "00000000-0000-4000-8000-000000000001",
  "idealCycleMs": 1,
  "piecesPerCycle": 1,
  "mechanicalFault": false,
  "recoveryPending": false,
  "hasCompletedCycle": false,
  "productionBlocked": false,
  "manualLamp": "Exemplo",
  "desiredLamp": "Exemplo"
}

Códigos HTTP: 200, 400, 401, 404, 409, 503. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • Edge nao vinculado a maquina
  • JSON persistido invalido
  • UUID invalido

Regras de negócio e dependências: MesService.config. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/edge/config?machineId=DOC.01" -H "X-Edge-Key: ${EDGE_KEY}"

API-144 — Receber evento do coletor ​

POST /api/mes/edge/events

Finalidade: Receber evento do coletor. Idempotência por eventId com corpo idêntico. Conteúdo diferente ou reutilização da sequência gera conflito. Saltos na sequência exigem validação e não contabilizam peças daquele ciclo. Timestamp até 5 minutos no futuro. CYCLE exige execução original e timings; schemaVersion >= 3 exige namedSignals.

Fonte: src/main/java/com/wester/storage/mes/MesEdgeController.java:13 — MesEdgeController.events.

Autenticação, autorização e perfis: Chave X-Edge-Key válida (MES_EDGE_KEY com pelo menos 16 bytes). JWT não substitui a chave. Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: X-Edge-Key: <CHAVE>. Accept: application/json recomendado. Content-Type: application/json para o corpo.

Parâmetros:

Sem query parameters, path variables ou headers de negócio declarados.

Corpo da requisição: MesEdgeEventInput; obrigatório. Sem @Valid no argumento; validações de negócio são executadas pelo serviço. Consulte os campos e restrições em Modelos.

Exemplo sintético (IDs devem existir e versões devem vir de consulta):

json
{
  "machineId": "DOC.01",
  "eventId": "00000000-0000-4000-8000-000000000001",
  "sequence": 1,
  "timestamp": "2026-10-15T12:00:00Z",
  "type": "SNAPSHOT",
  "lamp": "OFF",
  "outputStatus": "DISABLED",
  "signals": {
    "DI0": 0,
    "DI1": 0,
    "DI2": 0,
    "DI3": 0,
    "DI4": 0
  },
  "schemaVersion": 3,
  "namedSignals": {
    "BOMBA": 0,
    "MOLDE_FECHADO": 0,
    "ENCOSTE_BICO": 0,
    "INJECAO": 0,
    "ALARME": 0
  }
}

Resposta de sucesso: MesEventAck. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "eventId": "00000000-0000-4000-8000-000000000001",
  "duplicate": false
}

Códigos HTTP: 200, 400, 401, 404, 409, 503. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • Edge nao vinculado a maquina
  • eventId reutilizado com conteudo diferente
  • Sequencia do Edge reutilizada com outro eventId
  • classification invalida
  • CYCLE exige VALID_CYCLE
  • Resultado valido deve usar CYCLE
  • cycleState invalido
  • Timestamp mais de cinco minutos no futuro
  • Inicio do ciclo posterior ao evento
  • signals obrigatorio
  • namedSignals obrigatorio a partir de schemaVersion 3
  • Execucao pertence a outra maquina
  • Execucao ainda nao iniciada
  • CYCLE exige executionId original
  • cycle obrigatorio
  • Pecas divergem do contexto imutavel
  • timings obrigatorio
  • CYCLE_RESULT exige cycle
  • Ciclo interrompido nao pode produzir pecas
  • Somente eventos de ciclo podem conter cycle
  • JSON persistido invalido
  • UUID invalido
  • JSON invalido
  • Histórico de causas desta parada atingiu o limite; libere a ocorrência antes de registrar outra

Regras de negócio e dependências: MesService.ingest. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/edge/events" -H "X-Edge-Key: ${EDGE_KEY}" -H 'Content-Type: application/json' --data '{"machineId":"DOC.01","eventId":"00000000-0000-4000-8000-000000000001","sequence":1,"timestamp":"2026-10-15T12:00:00Z","type":"SNAPSHOT","lamp":"OFF","outputStatus":"DISABLED","signals":{"DI0":0,"DI1":0,"DI2":0,"DI3":0,"DI4":0},"schemaVersion":3,"namedSignals":{"BOMBA":0,"MOLDE_FECHADO":0,"ENCOSTE_BICO":0,"INJECAO":0,"ALARME":0}}'

API-145 — Receber saúde do coletor ​

POST /api/mes/edge/heartbeat

Finalidade: Receber saúde do coletor.

Fonte: src/main/java/com/wester/storage/mes/MesEdgeController.java:14 — MesEdgeController.heartbeat.

Autenticação, autorização e perfis: Chave X-Edge-Key válida (MES_EDGE_KEY com pelo menos 16 bytes). JWT não substitui a chave. Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: X-Edge-Key: <CHAVE>. Accept: application/json recomendado. Content-Type: application/json para o corpo.

Parâmetros:

Sem query parameters, path variables ou headers de negócio declarados.

Corpo da requisição: MesHeartbeatInput; obrigatório. Sem @Valid no argumento; validações de negócio são executadas pelo serviço. Consulte os campos e restrições em Modelos.

Exemplo sintético (IDs devem existir e versões devem vir de consulta):

json
{
  "machineId": "DOC.01",
  "adamReadAt": "2026-10-15T12:00:00Z",
  "outboxDepth": 0,
  "quarantineDepth": 0
}

Resposta de sucesso: MesHeartbeatAck. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "accepted": false,
  "receivedAt": "2026-10-15T12:00:00Z"
}

Códigos HTTP: 200, 400, 401, 404, 409, 503. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • lastRejection invalida
  • JSON persistido invalido

Regras de negócio e dependências: MesService.heartbeat. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/edge/heartbeat" -H "X-Edge-Key: ${EDGE_KEY}" -H 'Content-Type: application/json' --data '{"machineId":"DOC.01","adamReadAt":"2026-10-15T12:00:00Z","outboxDepth":0,"quarantineDepth":0}'

Manual do usuário — Sistema Wester. Conteúdo descreve as telas conforme a versão indicada na página inicial.