Os pontos de extremidade incluídos na API de relatórios são privados e não vêm com uma política de depreciação no momento. O Anthology Ally pode alterar ou atualizar esses pontos de extremidade dependendo das nossas estratégias ou de versões futuras.

Analise a documentação técnica a seguir para saber como configurar e personalizar adequadamente os pontos de extremidade. Verifique como integrar a API do Ally a uma ferramenta externa de relatórios para ter mais orientação. 

Métodos disponíveis

A API do Ally para relatórios tem dois métodos. A seção a seguir os descreve: 

MétodoURLTipo de solicitação HTTPDescrição
Geralhttps://[região]/api/v2/clients/[Código de cliente do Ally]/reports/overallObterPor padrão, esse método retorna um conjunto de dados com informações sobre o curso, WYSIWYG, além das pontuações e dos tipos de arquivos incluídos em cada curso a partir da instância LMS, independentemente de o Ally estar habilitado ou não.
Problemashttps://[região]/api/v2/clients/[Código de cliente do Ally]/reports/issuesObterPor padrão, este método retorna um conjunto de dados com as informações relacionadas a todos os problemas de acessibilidade que ocorrem em cada curso, incluídos na instância do LMS, independentemente de o Ally estar habilitado ou não.

Substitua o [Código de cliente do Ally] pelo seu código do Ally. Se você não souber seu código, crie um tíquete de suporte para solicitá-lo.

Substitua [Região] dependendo da região em que o ambiente do Ally da sua instituição estiver hospedado:

As informações acima podem variar dependendo do LMS. Você pode consultar a definição da coluna na Documentação de relatório do curso para cada LMS:

Resposta do status HTTP 

A API do Ally inclui um campo de status nos metadados da seguinte maneira:

  • Status 200 — Êxito: sua solicitação foi recebida com êxito e o conjunto de dados solicitado faz parte da resposta. 
  • Status 202 — Em processamento: sua solicitação foi recebida com êxito, mas o conjunto de dados está em preparação e ainda não está disponível. Repita a solicitação após algum tempo (recomenda-se pelo menos um minuto).
  • Status 401 — Não autorizado: o código de cliente do Ally ou o código de autorização não estão corretos.
  • Status 400 — Solicitação incorreta: o URL tem um nome de parâmetro inválido, por exemplo, uma opção de filtro, um operador ou um valor desconhecido. Analise a sintaxe do URL. Lembre-se de que algumas das opções de filtragem e classificação diferenciam maiúsculas e minúsculas. 

Documentação de métodos 

Método: Geral  

Solicitação HTTP: GET
https:// [Região]/api/v2/clients/[Código de cliente do Ally]/reports/overall 

Substitua o [Código de cliente do Ally] pelo seu código do Ally. Se você não souber seu código, crie um tíquete de suporte para solicitá-lo. 

Substitua [Região] dependendo da região em que o ambiente do Ally da sua instituição estiver hospedado:

Autorização: código do portador do OAuth. 

Parâmetros: Filtros opcionais ou opções de classificação. 

Corpo da solicitação: Nenhum 

Resposta: 


    "data": [ 
        { 
            "application/x-quiz": 2, 
            "observedDeletedOn": "", 
            "termName": "Fall 2016", 
            "courseId": "1", 
            "application/x-announcement": 0, 
            "image": 4, 
            "termId": "2", 
            "document": 93, 
            "allyEnabled": true, 
            "pdf": 74, 
            "courseCode": "BIO101", 
            "application/x-assignment": 0, 
            "departmentId": "1", 
            "totalFiles": 192, 
            "courseUrl": "https://ally.instructure.com/courses/1", 
            "departmentName": "Anthology Ally", 
            "application/x-page": 1, 
            "filesScore": 0.6022810739019293, 
            "application/x-syllabus": 1, 
            "numberOfStudents": 1, 
            "html-page": 5, 
            "lastCheckedOn": "2022-04-13 15:33:23", 
            "WYSIWYGScore": 1.0, 
            "totalWYSIWYG": 5, 
            "courseName": "Biology 101", 
            "application/x-discussion-topic": 1, 
            "other": 11, 
            "overallScore": 0.6129724428830603, 
            "presentation": 5 
        } 
], 
    "metadata": {
    "filteredTotal": 0,
    "total": 7186,
        "to": 7186,
    "status": "Processing", 
        "from": 1 
    } 

Método: Problemas 

Solicitação HTTP: GET 
https:// [Região]/api/v2/clients/[Código de cliente do Ally]/reports/overall 

Substitua o código [Código de cliente do Ally] pelo seu código do Ally. Se você não souber seu código, crie um tíquete de suporte para solicitá-lo. 

Substitua [Região] dependendo da região em que o ambiente do Ally da sua instituição estiver hospedado:

Autorização: código do portador do OAuth 

Parâmetros: filtros opcionais ou opções de classificação. 

Corpo da solicitação: nenhum 

Resposta: 


    "data": [ 
        { 
            "imageDecorative2": 4, 
            "htmlEmptyHeading2": 0, 
            "imageSeizure1": 2, 
            "observedDeletedOn": "", 
            "htmlObjectAlt2": 0, 
            "security1": 3, 
            "termName": "Fall 2016", 
            "courseId": "1", 
            "languageCorrect3": 14, 
            "htmlColorContrast2": 2, 
            "htmlLinkName3": 0, 
            "termId": "2", 
            "languagePresence3": 10, 
            "allyEnabled": true, 
            "htmlLabel2": 0, 
            "alternativeText2": 68, 
            "htmlImageAlt2": 0, 
            "htmlImageRedundantAlt3": 0, 
            "headingsPresence2": 20, 
            "courseCode": "BIO101", 
            "headingsSequential3": 4, 
            "departmentId": "1", 
            "htmlHeadingsPresence2": 0, 
            "courseUrl": "https://ally.instructure.com/courses/1", 
            "headingsStartAtOne3": 4, 
            "departmentName": "Anthology Ally", 
            "htmlHeadingsStart2": 0, 
            "htmlTdHasHeader2": 0, 
            "htmlList3": 0, 
            "htmlDefinitionList3": 0, 
            "htmlCaption2": 0, 
            "tableHeaders2": 23, 
            "htmlEmptyTableHeader2": 0, 
            "htmlHasLang3": 1, 
            "ocred2": 0, 
            "scanned1": 6, 
            "htmlBrokenLink2": 0, 
            "numberOfStudents": 1, 
            "htmlHeadingOrder3": 0, 
            "lastCheckedOn": "2022-04-13 15:33:23", 
            "headingsHigherLevel3": 0, 
            "contrast2": 28, 
            "title3": 46, 
            "imageOcr3": 0, 
            "tagged2": 4, 
            "libraryReference": 172, 
            "courseName": "Biology 101", 
            "imageContrast2": 0, 
            "imageDescription2": 4, 
            "htmlTitle3": 1, 
            "parsable1": 2 
        } 
], 
    "metadata": { 
        "filteredTotal": 0,
    "total": 7186,
        "to": 7186,
    "status": "Processing", 
        "from": 1 
    } 

Em que: 

  • Dados: contém o conjunto de dados dos resultados. 
  • Metadados: 
    • Para: registro para o qual os dados serão obtidos, é "deslocamento" + "limite" ou "total" se a soma exceder "total". 
    • De: registro a partir do qual os dados começarão, é "deslocamento" + 1. 
    • Total: número total de cursos considerados pelo Ally na instância do LMS. 

Deslocamento — a partir do qual o registro começa 

  • A primeira linha é deslocada = 0, 
  • Quando deslocamento < 0, o usuário recebe o erro 400 — [Valor inválido (parâmetro=deslocamento, mensagem=Os dados não existem)], 
  • Quando (deslocamento >= total) =>, o usuário recebe o erro 400 — [Valor inválido (parâmetro=deslocamento, mensagem=Os dados não existem)] 

Limite — quantos registros são recuperados a partir do deslocamento 

  • Quando (limite < 1), o usuário recebe o erro 400 — [Valor inválido (parâmetro=limite, mensagem=Limite fora das fronteiras)]
  • Quando (limite > 10.000), o usuário recebe o erro 400 — [Valor inválido (parâmetro=limite, mensagem=Limite fora dos limites)
  • Quando (deslocamento < total && deslocamento + limite > total), alteramos o limite em segundo plano para você e os dados serão recuperados até o último (total) 

Filtros e opções de classificação 

As respostas do ponto de extremidade podem ser filtradas no URL. Esta seção descreve as opções disponíveis: 

Opções de classificação 

Você pode definir se deseja exibir os resultados classificados em ordem crescente ou decrescente conforme um critério. Se você precisar adicionar uma opção de classificação, adicione o parâmetro de classificação conforme descrito abaixo:

endpoint-url?sort=<Valor do parâmetro de classificação> 

Em que <Valor do parâmetro de classificação> pode ser qualquer um dos valores de parâmetro a seguir: 

Valor do parâmetroDescriçãoCompatível comExemplo
courseName Classifica pelo nome do curso, por exemplo, Introdução à Química
(courseCode não é válido)
Pontos de extremidade gerais e de problemas endpoint-url?sort=courseName 
código do cursoClassifica por código do curso, por exemplo, 123456
(geralmente é um número inteiro)
Pontos de extremidade gerais e de problemas endpoint-url?sort=courseId 
termId Classifique pelo código do período. Por exemplo, Soma Pontos de extremidade gerais e de problemas endpoint-url?sort=termId 
termNameClassifica pelo nome do período, por exemplo, Primeiro semestre Pontos de extremidade gerais e de problemas endpoint-url?sort=termName 
overallScoreClassifica pela pontuação geral de acessibilidade de cada curso.   Somente ponto de extremidade geral.endpoint-url?sort=overallScore 
filesScoreClassifica os resultados pela pontuação do arquivo de cada curso. Somente ponto de extremidade geral.endpoint-url?sort=filesScore 
wysiwygScoreClassifica os resultados pela pontuação WYSIWYG de cada curso. Ponto de extremidade geral e disponível apenas no Ally para LMS. endpoint-url?sort= wysiwygScore 
webPagesScoreClassifica os resultados pela pontuação da página da web de cada domínio. Ponto de extremidade geral e disponível apenas no Ally para sites e WCM. endpoint-url?sort= webPagesScore 

Os valores de parâmetro diferenciam maiúsculas e minúsculas e somente uma opção de classificação pode ser usada por vez. 

 

Por padrão, os resultados são classificados em ordem crescente. Se quiser definir uma ordem diferente, você pode adicionar o parâmetro de ordem: 

endpoint-url?sort=<Valor do parâmetro de classificação>&order=<Valor da ordem> 

Em que <Valor da ordem> pode ser: asc ou desc 

Exemplo: 

https://prod.ally.ac/api/v2/clients/0/issues?sort=courseName&order=desc 

Opções de filtragem 

Você pode usar opções de filtragem para obter respostas menores ou reduzidas com base nos critérios selecionados.  Se precisar adicionar uma opção de filtragem, adicione o parâmetro de filtragem conforme descrito abaixo:

Parâmetros do filtro (sem operador) 

Nome do parâmetro do filtro Descrição Compatível com 
allyEnabled Você pode obter os cursos em que o Ally está ativo
O valor é verdadeiro ou falso
Pontos de extremidade gerais e de problemas
departmentId Filtrar pelo código do departamentoPontos de extremidade gerais e de problemas 
departmentName Filtrar pelo nome do departamento, por exemplo, Engenharia Pontos de extremidade gerais e de problemas 
termIdFiltrar pelo código do períodoPontos de extremidade gerais e de problemas 
termName Filtrar pelo nome do período, por exemplo, Primeiro semestre Pontos de extremidade gerais e de problemas 
código do cursoFiltre pelo código ou curso, por exemplo, 123456
(geralmente é um número inteiro) 
Pontos de extremidade gerais e de problemas 
courseName Filtrar pelo nome de um curso. Por exemplo, Introdução à Química
(courseCode não é válido)
Pontos de extremidade gerais e de problemas 

 endpoint-url?<Parâmetro do filtro>=<valor> 

Parâmetros do filtro (com operador) 

endpoint-url?<Parâmetro do filtro>=<Operador>:<valor> 

Em que: 

  • <Parâmetro do filtro>: Parâmetro de filtragem para obter um conjunto menor de resultados. Você pode consultar os parâmetros compatíveis na tabela abaixo. 
  • <Operador>: Você deve usar um operador para filtrar, como igual, não igual. 
  • <valor>: Valor usado no filtro. 
Nome do parâmetro do filtro Tipo de campo Operadores compatíveis Descrição Compatível com 
allyEnabledBoolianoeq, neVocê pode obter os cursos em que o Ally está ativo 
O valor é verdadeiro ou falso. 
Pontos de extremidade gerais e de problemas 
courseNameSequência de caractereseq, ne, co, nc, sw Filtrar pelo nome de um curso. Por exemplo, Introdução à Química
(courseCode não é válido)
Pontos de extremidade gerais e de problemas 
código do cursoSequência de caractereseq, ne, co, nc, sw Filtrar pelo código ou curso. Por exemplo, 123456
(geralmente é um número inteiro) 
Pontos de extremidade gerais e de problemas 
termIdSequência de caractereseq, ne, co, nc, sw Filtrar pelo código do período. Pontos de extremidade gerais e de problemas 
termNameSequência de caractereseq, ne, co, nc, sw Filtrar pelo nome do período, por exemplo, Primeiro semestre Pontos de extremidade gerais e de problemas 
overallScoreNúmeroeq, ne, le, lt, ge, gt Você pode filtrar por uma pontuação geral, por exemplo, Cursos com uma pontuação igual a 90% Ponto de extremidade geral e em todas as soluções Ally: LMS, sites e WCM.
filesScoreNúmeroeq, ne, le, lt, ge, gt Você pode filtrar pela pontuação dos arquivos, por exemplo, Cursos com uma pontuação de arquivos igual a 90% Ponto de extremidade geral e em todas as soluções Ally: LMS, sites e WCM.
wysiwygScoreNúmeroeq, ne, le, lt, ge, gt Você pode filtrar pela pontuação WYSIWYG, por exemplo, Cursos com uma pontuação WYSIWYG igual a 90% Ponto de extremidade geral e disponível apenas no Ally para LMS. 
webPagesScoreNúmeroeq, ne, le, lt, ge, gt Você pode filtrar pela pontuação de um domínio, por exemplo, Páginas da web com uma pontuação igual a 90%. Ponto de extremidade geral e disponível apenas no Ally para sites ou WCM. 

Os valores de parâmetro diferenciam maiúsculas e minúsculas.

Operadores compatíveis

A tabela a seguir contém os operadores compatíveis com base no tipo de campo: 

Tipo de campoOperadorDescrição
Sequência de caractereseqÉ igual 
Sequência de caracteresneNão é igual 
Sequência de caracterescoContém palavra-chave 
Sequência de caracteresncNão contém a palavra-chave 
Sequência de caracteresswComeça com a palavra-chave 
NúmeroeqÉ igual 
NúmeroneNão é igual 
NúmeroleMenor ou igual 
NúmeroltMenor que 
NúmerogeMaior ou igual 
NúmerogtMaior que 

Exemplo: 

O exemplo a seguir recupera todos os cursos que contenham a palavra-chave "tests" no nome do curso:

https://prod.ally.ac/api/v2/clients/15/reports/overall?courseName=co:tests 

Como usar vários filtros 

Você pode combinar as opções de classificação e filtragem no mesmo URL do ponto de extremidade adicionando o caractere "&" entre as duas condições. Por exemplo, digamos que você queira recuperar todos os cursos que contêm a palavra-chave "test" no nome do curso em que o Ally está habilitado e que tenha pontuação geral inferior a 90%. O URL seria assim:

https://prod.ally.ac/api/v2/clients/0/overall?courseName=co:test&allyEnabled=true&overallScore=lt:0.9

Você também pode usar duas opções de filtragem. Por exemplo, digamos que você precise obter todos os cursos que tenham uma pontuação geral entre 10% e 70%:

https://prod.ally.ac/api/v2/clients/0/reports/overall?overallScore=ge:0.1&overallScore=le:0.7