Pular para o conteúdo principal

Convenções

Regras que valem para todos os endpoints. As páginas de cada módulo só repetem o que for diferente.

Endereço base​

https://api.pedagogo.app

Os caminhos nas páginas da referência são relativos a esse endereço. Não há prefixo de versão: o caminho começa pelo módulo, por exemplo /comercial/courses ou /administrative/departments.

Cabeçalhos​

CabeçalhoValorQuando
AuthorizationBearer <token-de-sessao>Em todas as chamadas, exceto POST /auth/login-by-token
Acceptapplication/jsonSempre. Sem ele, erros de validação podem voltar como redirecionamento em vez de JSON
Content-Typeapplication/jsonEm chamadas com corpo JSON. Para envio de arquivos, use multipart/form-data

Identificadores​

A maioria dos registros é identificada por um uuid (por exemplo 3f1c0b6e-8a2d-4c57-9b1e-2d7a5f0e6a11), usado no caminho: GET /administrative/departments/{uuid}. A resposta de criação devolve o uuid do novo registro. Alguns recursos auxiliares usam o id numérico; as páginas de cada módulo indicam qual.

Verbos​

VerboUso
GETConsultar uma lista ou um registro
POSTCriar um registro ou executar uma ação
PUT / PATCHAlterar um registro
DELETEApagar um registro

Listagens​

Os endpoints de listagem aceitam estes parâmetros na URL:

ParâmetroDescrição
searchTexto livre para buscar nas colunas principais do recurso
per_pageQuantidade de registros por página. Se for omitido, a API devolve todos os registros de uma vez, em uma lista simples
pageNúmero da página, quando per_page é informado

Com per_page, a resposta é paginada:

{
"current_page": 1,
"data": [ { "uuid": "...", "department": "Comercial" } ],
"from": 1,
"to": 1,
"per_page": 15,
"total": 1
}

Sem per_page, a resposta é a lista direta: [ { ... }, { ... } ].

Filtros e ordenações específicos de cada recurso (por exemplo, filtrar por nome do departamento) estão descritos na página do recurso.

Criar e alterar​

Envie os campos em JSON. Os campos obrigatórios de cada endpoint estão na tabela Corpo da página do recurso. O servidor preenche sozinho o que é do sistema: o uuid, a empresa cliente e o usuário que criou ou alterou o registro.

Erros​

StatusSignificado
401Autenticação ou acesso negado, com {"error": "..."}. Veja Autenticação
404Registro não encontrado, ou que pertence a outra empresa cliente
422Dados inválidos. O corpo traz message e errors, com a lista de mensagens por campo

Exemplo de erro de validação:

{
"message": "The department field is required.",
"errors": {
"department": ["The department field is required."]
}
}

Acesso por tela​

Cada endpoint pertence a uma tela do menu. Para chamá-lo, o pacote do cliente precisa incluir essa tela e o grupo de acesso do usuário precisa liberá-la (veja Pacotes e Grupos de acesso). Caso contrário, a resposta é 401 com You do not have access to this page..