Para empresas: API de dados de desempenho
A Alura possui duas APIs para geração de relatório de desempenho na plataforma, ambas são acessadas via HTTP com método POST e os parâmetros enviados como form data. A primeira é a de extração de desempenho por time e a outra é a da empresa que envolve todos os times.
API de desempenho por time
A URL de acesso é no seguinte formato:
https://cursos.alura.com.br/team/report/report-team/{id_time}/json/{token}
Esse endereço pode ser pego indo no dashboard do time, clicando em "Relatório de desempenho":
No fim da tela, clicar em nossa API. As informações de acesso aparecerão, especialmente o token de acesso individual da empresa:
O exemplo é mostrado como um comando curl, mas pode ser chamado em qualquer outro sistema usando o mesmo formato. A requisição de exemplo é dinâmica, baseada nos dados selecionados no formulário acima. Ou seja, você pode montar toda a requisição via formulário e depois copiar e cola o comando final.
Parâmetros da requisição
Os campos para realizar uma requisição para essa URL são:
reportForm.companyId: id da empresa(campo numérico), exemplo reportForm.companyId=1
reportForm.teamsId.id: id do time(campo numérico), exemplo reportForm.teamsId.id=1
reportFrom.startsAt: início do intervalo do relatório(data no formato DD/MM/YYYY), exemplo reportFrom.startsAt=18%2F05%2F2018
reportFrom.finishesAt: fim do intervalo do relatório(data no formato DD/MM/YYYY), exemplo 18%2F05%2F2019
reportForm.reportType: tipo do relatório, atualmente só suportamos por categoria, exemplo reportForm.reportType=ByCategory
reportForm.categoriesId.id: lista de ids das categorias selecionadas(lista numerica), exemplo reportForm.categoriesId.id=1&reportForm.categoriesId.id=3
reportForm.withInitializedCourses: opcional,mostrar cursos iniciados no intervalo(boolean), exemplo reportForm.withInitializedCourses=true
reportForm.withFinishedCourses: opcional,mostrar cursos finalizados no intervalo(boolean), exemplo reportForm.withFinishedCourses=true
Dados da resposta
Os campos de resposta são em formato JSON, que é uma lista de cada curso feito por colaborador do time com os seguintes campos:
Exemplo prático
Agora vamos simular uma request para pegar o progresso dos colaboradores do time 1 (reportForm.teamsId.id=1); da empresa 1(reportForm.companyId=1) e com o token token, que terminaram(reportForm.withFinishedCourses=on) um curso no periodo entre 12/07/2018(reportForm.startsAt=12%2F07%2F2018) e 12/07/2019(reportForm.finishesAt=12%2F07%2F2019), nas categorias mobile e front-end(reportForm.reportType=ByCategory&reportForm.categoriesId.id=1&reportForm.categoriesId.id=3)
O request ficaria assim:
curl -X POST -i https://cursos.alura.com.br/team/report/report-team/1/json/token --data 'reportForm.companyId=1&reportForm.teamsId.id=1&reportForm.startsAt=12%2F07%2F2018&reportForm.finishesAt=12%2F07%2F2019&reportForm.withFinishedCourses=on&reportForm.withDisabledCourses=on&reportForm.reportType=ByCategory&reportForm.categoriesId.id=1&reportForm.categoriesId.id=3'
A resposta seria essa:
[ { "Nome do aluno": "Colaboradora 1", "Email do aluno": "colaboradora.1@empresa.com.br", "Times do aluno": "Time para estudos de front e mobile", "Curso": "Ionic 3 parte 1: aplicações híbridas mobile ainda mais poderosas", "Categoria": "Mobile", "Carga horária estimada": 16, "Quantidade de seções": 7, "Iniciado em": "11/10/2018", "Terminado em": "11/10/2018", "% Seções Finalizadas": 14.285714285714285, "% Exercícios Feitos": 0.0, "Aproveitamento": 10.714285714285714, "Último acesso": "22/06/2019", "Tem licença": "Não tem" }, { "Nome do aluno": "Colaboradora 1", "Email do aluno": "colaboradora.1@empresa.com.br", "Times do aluno": "Time para estudos de front e mobile", "Curso": "Ionic 3 parte 2: Recursos e build nativos", "Categoria": "Mobile", "Carga horária estimada": 12, "Quantidade de seções": 6, "Iniciado em": "11/10/2018", "Terminado em": "11/10/2018", "% Seções Finalizadas": 16.666666666666664, "% Exercícios Feitos": 0.0, "Aproveitamento": 12.499999999999998, "Último acesso": "22/06/2019", "Tem licença": "Não tem" }, { "Nome do aluno": "Colaborador 2", "Email do aluno": "colaborador.2@empresa.com.br", "Times do aluno": "Time para estudos de front e mobile", "Curso": "HTML5 e CSS3 I: Suas primeiras páginas da Web", "Categoria": "Front-end", "Carga horária estimada": 32, "Quantidade de seções": 12, "Iniciado em": "04/02/2016", "Terminado em": "10/10/2018", "% Seções Finalizadas": 100.0, "% Exercícios Feitos": 93.63636363636364, "Aproveitamento": 98.4090909090909, "Último acesso": "12/07/2019", "Tem licença": "Não tem" } ]
Relatório da empresa toda
Gestores da empresa têm a possibilidade de gerar um relatório parecido mas com diversos times. Você consegue acessar os dados dessa API na tela de gerenciamento de times, clicando no botão no final da lista indicando Relatório de times gerenciados. Nesta página, ao final, existe o link nossa API que exibe uma documentação parecida com o caso anterior.
A URL dessa API é:
https://cursos.alura.com.br/team/report/reports-managed/{id_empresa}/json/<token>
O parâmetro reportForm.teamsId.id
deve ter id do time desejado (ex. reportForm.teamsId.id=10
) ou passe várias vezes para vários times diferentes (ex. reportForm.teamsId.id=10&reportForm.teamsId.id=22
).