Disciplinas da Escola
Vincula disciplinas a séries da escola, indicando quais disciplinas são oferecidas para cada série.
O modelo vínculo
id
uuid
Identificador do vínculo.
grade_id
uuid
UUID da série.
subject_id
uuid
UUID da disciplina.
subject
string
Nome da disciplina (somente leitura).
grade
string
Nome da série (somente leitura).
{ "id": "a1b2...", "grade_id": "...", "subject_id": "...", "subject": "Matemática", "grade": "5º Ano" }
/v1/partners/school/{cnpj}/grade/{gradeId}/subjects/all
Listar disciplinas da série
Retorna todas as disciplinas vinculadas a uma série da escola.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
gradeId
uuid
obrigatório
UUID da série.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola ou série não encontrada.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../grade/{gradeId}/subjects/all');
await fetch('.../grade/{gradeId}/subjects/all');
{ "data": [ { "id": "a1b2...", "grade_id": "...", "subject_id": "...", "subject": "Matemática", "grade": "5º Ano" } ] }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou série não encontrada." }
/v1/partners/school/{cnpj}/grade/{gradeId}/subject
Vincular disciplina
Vincula uma disciplina existente a uma série da escola. O vínculo deve ser único (mesma disciplina não pode ser vinculada duas vezes à mesma série).
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
gradeId
uuid
obrigatório
UUID da série.
Parâmetros do corpo
subject_id
uuid
obrigatório
UUID da disciplina (deve pertencer à mesma escola).
Códigos de resposta
200
Vínculo criado com sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Escola, série ou disciplina não encontrada.
409
Disciplina já vinculada a esta série.
-X POST \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"subject_id":"a1b2c3d4-..."}'
$client->post('.../grade/{gradeId}/subject', [ 'json' => ['subject_id' => '{subject_id}'], ]);
await fetch('.../grade/{gradeId}/subject', { method: 'POST', body: JSON.stringify({ subject_id: '{subject_id}' }), });
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "grade_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901", "subject_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012", "subject": "Matemática", "grade": "5º Ano" } }
{ "message": "Os dados fornecidos são inválidos." }
{ "message": "Autenticação inválida." }
{ "message": "Escola, série ou disciplina não encontrada." }
{ "message": "Disciplina já vinculada a esta série." }
/v1/partners/school/{cnpj}/grade/{gradeId}/subject/{subjectId}
Desvincular disciplina
Remove o vínculo entre uma disciplina e uma série. Não é possível desvincular uma disciplina que possua carga horária configurada para a série ou que esteja vinculada a um professor em uma turma da série.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
gradeId
uuid
obrigatório
UUID da série.
subjectId
uuid
obrigatório
UUID da disciplina a desvincular.
Códigos de resposta
200
Vínculo removido com sucesso.
401
Autenticação inválida.
404
Escola, série ou vínculo não encontrado.
409
A disciplina está em uso (carga horária ou professor) e não pode ser desvinculada.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->delete('.../grade/{gradeId}/subject/{subjectId}');
await fetch('.../grade/{gradeId}/subject/{subjectId}', { method: 'DELETE' });
{ "message": "Vínculo removido com sucesso." }
{ "message": "Autenticação inválida." }
{ "message": "Escola, série ou vínculo não encontrado." }
{ "message": "A disciplina está em uso (carga horária ou professor) e não pode ser desvinculada." }