Visão Geral da Integração
Objetivo da Integração
A API de Integração ProExtend permite que sistemas de gestão acadêmica (ERPs) sincronizem dados com a plataforma ProExtend. Esta API possibilita a sincronização bidirecional de dados acadêmicos incluindo unidades, áreas, cursos, disciplinas, professores, alunos e matrículas.
Arquitetura de Comunicação
Sistema Origem → API ProExtend
(Instituição) (Plataforma)
- Submissão de dados → - Validação de payload
- Identificadores próprios → - Persistência/atualização
- Sincronização periódica → - Garantia de consistência
Caracter ísticas Arquiteturais
- Sistema de Identificação Baseado em Codes: Utiliza identificadores do sistema origem
- Operações Idempotentes: Sincronizações múltiplas não resultam em duplicação de dados
- Arquitetura RESTful: Protocolo HTTP com payloads JSON
- Autenticação via API Key: Credenciais de longa duração geradas administrativamente
Mecanismo de Autenticação
A API implementa autenticação baseada em API Keys geradas através do painel administrativo (Avançado > Integrações).
Sistema de Identificadores (Codes)
O sistema utiliza identificadores próprios do ERP origem (denominados "codes") para todas as entidades. A API ProExtend não gera novos identificadores.
O mapeamento de entidades é realizado exclusivamente através dos codes fornecidos. Não é necessário armazenar IDs internos da plataforma.
A API possui comportamento idempotente: ao sincronizar uma entidade cujo code já existe, os dados são atualizados sem criar registros duplicados.
Especificação detalhada em Identificadores e Codes.
Modelo de Dados
O sistema opera com as seguintes entidades:
1. Unidades (Units)
Representam campus ou unidades físicas da instituição de ensino.
Exemplo: Campus Centro, Campus Norte
2. Áreas (Areas)
Áreas de conhecimento que agrupam cursos relacionados.
Exemplo: Tecnologia da Informação, Ciências da Saúde
3. Cursos (Courses)
Programas acadêmicos oferecidos pela instituição.
Exemplo: Ciência da Computação, Enfermagem
4. Disciplinas Base (Subjects)
Componentes curriculares que compõem a grade de cursos.
Exemplo: Algoritmos I, Banco de Dados, LIBRAS
Nota: Disciplinas Base representam o cadastro curricular permanente, sem vínculo com períodos letivos ou discentes.
5. Professores (Professors)
Docentes responsáveis por ministrar disciplinas.
Exemplo: João Silva, Maria Santos
6. Alunos (Students)
Discentes matriculados em programas acadêmicos.
Exemplo: Pedro Oliveira, Ana Costa
7. Turmas (Enrollments)
Instâncias de disciplinas base vinculadas a período letivo específico, incluindo docente responsável e discentes matriculados.
Exemplo: "Algoritmos I - 2025.1" (turma com 30 alunos, Prof. João)
Nota: Turmas são instâncias de Disciplinas Base em um período letivo.
Distinção: Disciplina Base vs Turma
- Disciplina Base (Subject): Registro permanente no catálogo curricular, sem vínculo temporal ou matrícula de alunos
- Turma (Enrollment): Instância de disciplina base em período letivo determinado, com docente e discentes vinculados
Detalhamento em Conceitos Fundamentais.
Hierarquia de Entidades
Estrutura hierárquica: Unidades → Áreas → Cursos → Disciplinas Base
Relacionamento de Turmas: Disciplina Base + Professor + Alunos
Especificação completa em Conceitos Fundamentais.
Processo de Integração
Configuração Inicial
- Geração de API Key via painel administrativo
- Sincronização de entidades respeitando ordem de dependências: Units → Areas → Courses → Subjects → Professors/Students → Enrollments
Sincronização Incremental
Submissão de entidades modificadas. A API realiza atualização baseada em identificador (code).
Especificação detalhada em Fluxo de Sincronização.
Operações Suportadas
Operações de Consulta (GET)
Recuperação de dados sincronizados.
Permissão requerida: scope read ou full
Exemplos:
GET /integration/v1/units- Listagem de unidadesGET /integration/v1/professors/PROF001- Recuperação de professor por identificador
Operações de Sincronização (POST)
Criação ou atualização de entidades em lote.
Permissão requerida: scope write ou full
Exemplos:
POST /integration/v1/units/sync- Sincronização de unidadesPOST /integration/v1/students/sync- Sincronização de alunos
Comportamento de sincronização:
- Entidade com code existente: atualização de dados
- Entidade com code inexistente: criação de novo registro
- Operação idempotente: execução múltipla não resulta em duplicação
Segurança e Controle de Acesso
Escopos de Autorização
Cada API Key é configurada com escopo de acesso específico:
- read: Permissão de leitura (endpoints GET)
- write: Permissão de sincronização (endpoints POST /sync)
- full: Permissão completa (leitura e escrita)
Limitação de Taxa (Rate Limiting)
Limite configurável por cliente API (padrão: 60 requisições/minuto).
Resposta em caso de excedente de taxa:
{
"success": false,
"message": "Muitas tentativas. Por favor, tente novamente mais tarde.",
"retry_after": 60,
"status": 429
}
Requisitos de Segurança
- Protocolo HTTPS: Obrigatório para todas as requisições
- Isolamento de Dados: Cada instituição acessa exclusivamente seus próprios dados
- Credenciais Exclusivas: API Keys únicas por integração
Especificação de Endpoints
URL Base
https://{{instituicao}}.proextend.com.br/api/integration/v1/
Substituir {{instituicao}} pela URL fornecida para sua instituição.
Endpoints de Consulta
GET /integration/v1/units
GET /integration/v1/units/{code}
GET /integration/v1/areas
GET /integration/v1/courses
GET /integration/v1/subjects
GET /integration/v1/professors
GET /integration/v1/students
GET /integration/v1/enrollments
Endpoints de Sincronização
POST /integration/v1/units/sync
POST /integration/v1/areas/sync
POST /integration/v1/courses/sync
POST /integration/v1/subjects/sync
POST /integration/v1/professors/sync
POST /integration/v1/students/sync
POST /integration/v1/enrollments/sync
Exemplo de Utilização
# Sincronização de professor
POST /integration/v1/professors/sync
Authorization: Bearer pex_...
{
"professors": [{
"code": "PROF001",
"name": "Dr. João Silva",
"email": "joao@inst.edu.br",
"cpf": "12345678901"
}]
}
# Consulta de professor
GET /integration/v1/professors/PROF001
Authorization: Bearer pex_...
Exemplos completos em Fluxo de Sincronização.
Características da Solução
- Independência de Identificadores Internos: Utilização de códigos do sistema origem
- Operações Idempotentes: Sincronizações múltiplas sem efeitos colaterais
- Sincronização Seletiva: Possibilidade de sincronizar subconjuntos de entidades
- Rastreabilidade: Vinculação de dados através de identificadores do sistema origem
- Isolamento Multi-tenant: Segregação completa de dados entre instituições
Próximas Etapas
Para implementação da integração:
- Revisar Conceitos Fundamentais para compreensão do modelo de dados
- Configurar Autenticação para obtenção de credenciais
- Implementar Fluxo de Sincronização conforme sequência especificada
- Aplicar diretrizes de Identificadores e Codes
Recursos de Monitoramento
- Sync Status: Endpoint para monitoramento de estado de sincronização (
GET /integration/v1/sync-status)