Para obtener la información de un usuario de una escuela de Teachlr Organizaciones se debe realizar una petición de tipo GET al API de Teachlr Organizaciones utilizando el siguiente URL:
https://api.teachlr.com/<dominio>/api/users/<username>
En donde <dominio> se debe sustituir por el dominio teachlr de la escuela (no el dominio personalizado) y <username> por el nombre de usuario del usuario que se desea consultar.
En la petición se deben enviar las siguientes dos cabeceras:
Key | Value |
Content-Type | application/json |
Authorization | key_0123456789ABCDEFGHIJK |
Nota: El valor de Authorization mostrado arriba es ficticio. Cada escuela tendrá su propia llave (key) que debe ser solicitada por el cliente.
Adicionalmente, se pueden especificar parámetros mediante una cadena de consulta, esto es, agregando al final del URL una estructura como la siguiente:
?teaching=false&certificates=true
Los distintos parámetros que se pueden especificar y sus posibles valores se detallan a continuación:
Parámetro | courses |
Valor | true | false |
Valor por defecto | true |
Significado | Mostrar la información de los cursos que el usuario está enseñando y aprendiendo |
Ejemplo | courses=false (no incluir los cursos) |
Nota: dentro de cada uno de los cursos que el usuario está aprendiendo, se incluye también la información sobre el certificado obtenido, si lo hubiere.
Parámetro | certificates |
Valor | true | false |
Valor por defecto | false |
Significado | Mostrar la información de los certificados obtenidos por el usuario |
Ejemplo | certificates=true (incluir la información de los certificados) |
Nota: con el parámetro certificates en true la respuesta del API mostrará la información de todos los certificados que tiene el usuario, pero de forma separada del listado de cursos. La información de los certificados dentro de cada uno de los cursos que el usuario está aprendiendo se seguirá mostrando.
Los parámetros a continuación sólo tienen efecto si no se envía el parámetro courses (ya que por defecto su valor es true) o si se envía el parámetro courses con valor true:
Parámetro | teaching |
Valor | true | false |
Valor por defecto | true |
Significado | Mostrar la información de los cursos que el usuario está enseñando |
Ejemplo | teaching=false (no incluir la información de cursos enseñando) |
Parámetro | learning |
Valor | true | false |
Valor por defecto | true |
Significado | Mostrar la información de los cursos que el usuario está aprendiendo |
Ejemplo | learning=false (no incluir la información de cursos aprendiendo) |
Caso de ejemplo:
Se desea obtener la información del usuario cuyo nombre de usuario es «pedroperez» de la escuela https://escueladeprueba.teachlr.com, incluyendo también la información de los certificados de forma separada.
La petición al API de Teachlr Organizaciones se debe hacer al siguiente URL:
https://api.teachlr.com/escueladeprueba/api/users/pedroperez?certificates=true
Una implementación utilizando la función $.ajax() de jQuery sería como sigue:
$.ajax({
url: "https://api.teachlr.com/escueladeprueba/api/users/
pedroperez?certificates=true",
dataType: "json",
type: "GET",
contentType: "application/json",
headers: {
"Authorization": "key_0123456789ABCDEFGHIJK"
},
success: function(data) {
// la petición fue exitosa
console.log('data', data);
},
error: function(xhr, status, err) {
// falló la petición
console.log('xhr', xhr);
console.log('status', status);
console.log('err', err);
}
});
Posibles respuestas del API:
Status: 200 OK
{
"id": 670,
"email": "pedroperez@dominio.com",
"username": "pedroperez",
"last_login_at": "2020-01-28 16:58:40",
"created_at": "2016-07-25 15:23:14",
"num_visit": 2219,
"first_login_at": "2016-07-25 15:23:14",
"register_type": "invitation",
"phone": "04169998877",
"subscriber": false,
"temp_email": false,
"name": "Pedro",
"last_name": "Pérez",
"about": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.",
"job": "Analista/programador",
"picture": {
"thumb": "https://d2j3j1vpt0.../avatars/O04-32x32.jpg",
"small": "https://d2j3j1vpt0.../avatars/O04-64x64.jpg",
"medium": "https://d2j3j1vpt0.../avatars/O04-98x98.jpg",
"large": "https://d2j3j1vpt0.../avatars/O04-198x198.jpg"
},
"department": "Informática",
"country": "Venezuela",
"city": "Caracas",
"identification_number": "14425125",
"language": "es",
"learning": [
{
"id": 1105,
"title": "Nemo enim ip",
"headline": "Ut enim ad minima veniam",
"description": "<p>Voluptatem et sit totam rerum sint aut quos accusan</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../covers/1487605210-118x66.jpg",
"small": "https://d2j3j1vpt0.../covers/1487605210-222x125.jpg",
"medium": "https://d2j3j1vpt0.../covers/1487605210-236x132.jpg",
"large": "https://d2j3j1vpt0.../covers/1487605210-506x285.jpg"
},
"slug": "nemo-enim-ip",
"subscribed_at": "2016-07-27 20:57:59",
"last_visit_at": "2017-10-17 14:53:42",
"completation": "100",
"is_completed": true,
"completed_at": "2016-07-27 20:58:33",
"url": "https://escueladeprueba.teachlr.com/#courses-online/nemo-enim-ip",
"certificate": {
"organization_name": "Escuela de prueba",
"hash": "4c0b69dd3945",
"granted_at": "2016-07-27 16:58:33",
"use_custom_certif": false,
"url": "https://escueladeprueba.teachlr.com/#certificate/4c0b69dd3945",
"instructors": "Daniel Fuentes, Héctor López"
}
},
{
"id": 3048,
"title": "At vero eos et accusamus et",
"headline": "Quis autem vel eum iure.",
"description": "<p>Lorem ipsum dolor sit amet, consectetuer adipis.<p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../img/course_cover-118x66.jpg",
"small": "https://d2j3j1vpt0.../img/course_cover-222x125.jpg",
"medium": "https://d2j3j1vpt0.../img/course_cover-236x132.jpg",
"large": "https://d2j3j1vpt0.../img/course_cover-506x285.jpg"
},
"slug": "at-vero-eos",
"subscribed_at": "2018-02-26 19:27:57",
"last_visit_at": "2018-10-17 13:20:34",
"completation": "50",
"is_completed": false,
"completed_at": null,
"url": "https://escueladeprueba.teachlr.com/#courses-online/at-vero-eos",
"certificate": null
},
{
"id": 247,
"title": "Curabi ullam",
"headline": "Ut enim ad minima veniam",
"description": "<p>Donec pede justo, fringilla vel, aliquet nec</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../covers/1452121219-118x66.jpg",
"small": "https://d2j3j1vpt0.../covers/1452121219-222x125.jpg",
"medium": "https://d2j3j1vpt0.../covers/1452121219-236x132.jpg",
"large": "https://d2j3j1vpt0.../covers/1452121219-506x285.jpg"
},
"slug": "curabi-ullam",
"subscribed_at": "2019-10-12 13:04:18",
"last_visit_at": "2019-10-16 11:36:41",
"completation": "75",
"is_completed": true,
"completed_at": "2019-10-16 09:35:24",
"url": "https://escueladeprueba.teachlr.com/#courses-online/curabi-ullam",
"certificate": {
"organization_name": "Escuela de prueba",
"hash": "2a05aa14d2df",
"granted_at": "2019-10-16 09:35:24",
"use_custom_certif": false,
"url": "https://escueladeprueba.teachlr.com/#certificate/2a05aa14d2df",
"instructors": "Antonio González, Luisa Campos"
}
}
],
"teaching": [
{
"id": 40,
"title": "Done quam feli",
"headline": "Donec pede justo, fringilla vel, aliquet nec, vulputate eget",
"description": "<p>In enim justo, rhoncus ut, imperdiet a, venenatis.</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../covers/2457412546-118x66.jpg",
"small": "https://d2j3j1vpt0.../covers/2457412546-222x125.jpg",
"medium": "https://d2j3j1vpt0.../covers/2457412546-236x132.jpg",
"large": "https://d2j3j1vpt0.../covers/2457412546-506x285.jpg"
},
"slug": "done-quam-feli",
"url": "https://escueladeprueba.teachlr.com/#courses-online/done-quam-feli"
},
{
"id": 157,
"title": "Maecenas temp",
"headline": "Nam quam nunc, blandit vel, luctus pulvinar.",
"description": "<p>Maecenas nec odio et ante tincidunt tempus.</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../img/course_cover-118x66.jpg",
"small": "https://d2j3j1vpt0.../img/course_cover-222x125.jpg",
"medium": "https://d2j3j1vpt0.../img/course_cover-236x132.jpg",
"large": "https://d2j3j1vpt0.../img/course_cover-506x285.jpg"
},
"slug": "maecenas-temp",
"url": "https://escueladeprueba.teachlr.com/#courses-online/maecenas-temp"
}
],
"certificates": [
{
"organization_name": "Escuela de prueba",
"hash": "4c0b69dd3945",
"granted_at": "2016-07-27 16:58:33",
"use_custom_certif": false,
"url": "https://escueladeprueba.teachlr.com/#certificate/4c0b69dd3945",
"instructors": "Daniel Fuentes, Héctor López",
"course": {
"id": 1105,
"title": "Nemo enim ip",
"headline": "Ut enim ad minima veniam",
"description": "<p>Voluptatem et sit totam rerum sint aut quos accusan</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../covers/1487605210-118x66.jpg",
"small": "https://d2j3j1vpt0.../covers/1487605210-222x125.jpg",
"medium": "https://d2j3j1vpt0.../covers/1487605210-236x132.jpg",
"large": "https://d2j3j1vpt0.../covers/1487605210-506x285.jpg"
},
"slug": "nemo-enim-ip",
"url": "https://escueladeprueba.teachlr.com/#courses-online/nemo-enim-ip"
}
},
{
"organization_name": "Escuela de prueba",
"hash": "2a05aa14d2df",
"granted_at": "2019-10-16 09:35:24",
"use_custom_certif": false,
"url": "https://escueladeprueba.teachlr.com/#certificate/2a05aa14d2df",
"instructors": "Antonio González, Luisa Campos",
"course": {
"id": 247,
"title": "Curabi ullam",
"headline": "Ut enim ad minima veniam",
"description": "<p>Donec pede justo, fringilla vel, aliquet nec</p>",
"cover": {
"thumb": "https://d2j3j1vpt0.../covers/1452121219-118x66.jpg",
"small": "https://d2j3j1vpt0.../covers/1452121219-222x125.jpg",
"medium": "https://d2j3j1vpt0.../covers/1452121219-236x132.jpg",
"large": "https://d2j3j1vpt0.../covers/1452121219-506x285.jpg"
},
"slug": "curabi-ullam",
"url": "https://escueladeprueba.teachlr.com/#courses-online/curabi-ullam"
}
}
]
}
Esta respuesta se obtiene cuando la petición fue exitosa. La respuesta de ejemplo muestra la información del usuario con tres (3) cursos aprendiendo, de los cuales ha obtenido el certificado de dos de ellos; dos (2) cursos enseñando y, separadamente, el listado de certificados que tiene (2).
Status: 400 Bad Request
[«Bad request»]
Esta respuesta se obtiene cuando la petición falla.
Status: 401 Unauthorized
[«Unauthorized»]
Esta respuesta se obtiene cuando la llave (key) enviada en la cabecera «Authorization» de la petición no es válida.
Status: 404 Not Found
[«Not Found»]
Esta respuesta se obtiene cuando el parámetro username enviado no existe o el URL al cual se está haciendo la petición está incorrecto.
Leave A Comment?