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":

dashboar_do_time

No fim da tela, clicar em nossa API. As informações de acesso aparecerão, especialmente o token de acesso individual da empresa:

relatorio

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:

"Nome do aluno": nome do colaborador(campo string), exemplo Carlos Müller
"Email do aluno": email do aluno(campo string ), exemplo "carlos.muller@email.com"
"Times do aluno": times em que o colaborador pertence(campo string), exemplo "Time para estudos de front"
"Curso": nome do curso em que o progresso foi feito(campo string), exemplo  "Angular parte 3: upload, build e novos componentes"
"Categoria": categoria do curso(campo string), exemplo "Front-end" 
"Carga horária estimada": carga horária estima do curso(campo numérico) 12
"Quantidade de seções": quantidades de seções dentro do curso(campo numérico), exemplo 8
"Iniciado em": data em que o colaborador começeu aquele curso(campo data formatado em DD/MM/YYYY),exemplo "02/08/2018"
"Terminado em":data em que o colaborador finalizou aquele curso(campo data formatado em DD/MM/YYYY),exemplo "13/08/2018"
"% Seções Finalizadas": porcentagem de seções concluidas(campo numérico com decimais), exemplo 99.9
"% Exercícios Feitos": porcentagem de atividates concluidas(campo numérico com decimais), exemplo 99.9
"Aproveitamento": (seções finalizadas% * 0.75) + (exercícios feitos% * 0.25) (campo numérico com decimais), exemplo 99.9
"Último acesso": data de ultimo acesso do aluno na plataforma(campo data formatado em DD/MM/YYYY), exemplo "12/07/2019"
"Tem licença": se no momento de geração do relatório o colaborador possuia uma licença ativa(campo stirng "Tem"/"Não tem")

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).

Isso resolveu sua dúvida? Obrigado pelo feedback problemas com submissao

Ainda precisa de ajuda? Contate-nos Contate-nos