Skip to content

Visão Geral e Convenções da API

URLs Base

Cada serviço é executado de forma independente

ServiçoURL Base
Cloudhttps://cloud.mangati.com
NovoSGAhttps://novosga.mangati.com
Painelhttps://painel.mangati.com
Triagemhttps://triagem.mangati.com
Agendahttps://agenda.mangati.com
Monitorhttps://monitor.mangati.com
Avaliaçãohttps://avaliacao.mangati.com
Notificaçãohttps://notificacao.mangati.com

Todos os endpoints de API têm o prefixo /api.

Autenticação

Todos os endpoints requerem um token bearer no cabeçalho Authorization:

Authorization: Bearer <token>

Consulte o Guia de Autenticação para saber como obter tokens.

Formato das Requisições

Para requisições POST/PUT, envie JSON com Content-Type: application/json:

bash
curl -X POST https://{servico}.mangati.com/api/{recurso} \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"campo": "valor"}'

Formato das Respostas

Todas as respostas são em JSON. Sempre envie Accept: application/json para receber JSON simples:

Accept: application/json

Os serviços de extensão suportam também JSON-LD (Accept: application/ld+json), que retorna o formato Hydra com metadados semânticos. Todos os exemplos desta documentação usam application/json.

Códigos de Status HTTP

CódigoSignificado
200Sucesso
201Criado
204Sem conteúdo (exclusão bem-sucedida)
400Requisição inválida
401Não autorizado - token ausente ou inválido
403Proibido - token sem o papel necessário
404Recurso não encontrado
422Erro de validação
500Erro no servidor

Formato de Erros

Erros de validação (422) retornam:

json
{
  "type": "https://tools.ietf.org/html/rfc2616#section-10",
  "title": "Um erro ocorreu",
  "detail": "campo: Este valor não deve ser vazio.",
  "violations": [
    {
      "propertyPath": "campo",
      "message": "Este valor não deve ser vazio.",
      "code": "c1051bb4-d103-4f74-8988-acbcafc7fdc3"
    }
  ]
}

Erros dos controladores customizados do NovoSGA retornam:

json
{
  "error": "Mensagem de erro legível"
}

Paginação (serviços API Platform)

Endpoints de coleção com Accept: application/json retornam um array simples:

json
[
  { "id": "...", ... },
  { "id": "...", ... }
]

Use ?page=N para navegar entre páginas. Tamanho padrão de página: 30 itens.

Com Accept: application/ld+json a resposta inclui metadados de coleção:

json
{
  "@context": "/api/contexts/Appointment",
  "@id": "/api/appointments",
  "@type": "Collection",
  "totalItems": 150,
  "member": [ ... ]
}

Filtros

Endpoints API Platform suportam filtros via parâmetros de consulta:

GET /api/appointments?date=2024-06-15
GET /api/appointments?location=018e4f2b-...
GET /api/tickets?status=waiting

Os filtros disponíveis estão documentados em cada seção de referência.

IDs

Todos os recursos usam identificadores UUID (campo id). Nunca utilize IDs inteiros - eles são internos e não são expostos pela API.

Exemplo de UUID: 018e4f2a-7b3c-7000-8d2e-1a2b3c4d5e6f

Datas e Horários

  • Datas: ISO 8601 - "2024-06-15"
  • Horários: "HH:MM" ou datetime ISO 8601
  • Timestamps: ISO 8601 com fuso horário - "2024-06-15T14:30:00+00:00"

Documentação do Mangati Cloud Suite