API

Esta es la documentación oficial de la API de doonish, JSON y privada (de momento). Cualquier desarrollador que quiera acceso a ella se puede poner en contacto con Pau (por twitter o escribiendo a su correo habitual). Se os va a dar un usuario y password para que podáis hacer peticiones a la API.

→ arriba

GET categories.json

Devuelve las categorias del juego, incluyendo el id, el titulo y la pretty_url, que es lo que usaremos como parámetro si queremos llamar a GET question/:category.json.

Este método va a retornar siempre el mismo resultado a no ser que se modifiquen las categorias originales del juego, cosa muy poco probable. Puede ser útil para que los desarolladores no tengan que "hardcodear" las categorias de doonish en su código.

URL del recurso

http://doonish.es/api/categories.json

Parámetros

user obligatorio

Es el usuario de la API.

Ejemplo:luis

hash obligatorio

Es el hash de la llamada a la API. El hash de cada llamada esta formado a partir de una funcion de hash (md5) donde el parámetro es la concatenación de un string fijo + el password de la API.

Ejemplo:a4b98f595267d47e383cf946ce8a0bde

Ejemplo

http://doonish.es/api/categories.json?user=[USUARIO]&hash=[HASH]

[
    {
        id: "1"
        name: "Deportes"
        pretty_url: "deportes"
    },
    {
        id: "2"
        name: "Música"
        pretty_url: "musica"
    },
    {
        id: "3"
        name: "Cine"
        pretty_url: "cine"
    },
    {
        id: "4"
        name: "Televisión"
        pretty_url: "television"
    },
    {
        id: "5"
        name: "Series"
        pretty_url: "series"
    },
    ...
]

→ arriba

GET question.json

Devuelve preguntas del juego sin aplicar el filtro por categoreía (para aplicar el filtro por categoría consulta la sección GET question/:category.json). La respuesta incluye el enunciado, las distintas opciones, la opción correcta, la URL de la pregunta en la web, la categoría de la pregunta, la dificultad y datos del usuario que ha creado la pregunta.

URL del recurso

http://doonish.es/api/question.json

Parámetros

user obligatorio

Es el usuario de la API.

Ejemplo:luis

hash obligatorio

Es el hash de la llamada a la API. El hash de cada llamada esta formado a partir de una funcion de hash (md5) donde el parámetro es la concatenación de un string fijo + el password de la API.

Ejemplo:a4b98f595267d47e383cf946ce8a0bde

id obligatorio

Es el id del usuario que visualizará la pregunta. Puede ser un string cualquiera, pero de la manera en que funciona es que cuando se devuelven preguntas se marcan como vistas para el usuario con el id especificado, de modo que para este usuario nunca mas se va a devolver esta pregunta. En futuras versiones de la API se van a proveer metodos para dar de alta usuarios y poder sincronizar usuarios de la web con usuarios de las aplicaciones clientes de la API.

Ejemplo:389bda99872822de04c8f00da90a0bde

amount opcional

Es la cantidad de preguntas que queremos obtener. Por defecto tiene un valor de 10.

Ejemplo:15

Ejemplo

http://doonish.es/api/question.json?user=[USUARIO]&hash=[HASH]&amount=4&id=12345

[
    {
        statement: "¿En qué año sucedió la batalla de las Navas de Tolosa?"
        pretty_url: http://doonish.es/pregunta/en-que-ano-sucedio-la-batalla-de-las-navas-de-tolosa
        option1: "1331"
        option2: "1212"
        option3: "4422"
        option4: "2112"
        correct_option: "c81e728d9d4c2f636f067f89cc14862c"
        category_id: "7"
        category: "Historia y cultura"
        explanation: ""
        source_url: ""
        correct_answer: "4"
        total_answers: "4"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:31"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"
    },
    {
        statement: "¿A qué corriente pertenecía Antonio Machado?"
        pretty_url: http://doonish.es/pregunta/a-que-corriente-pertenecia-antonio-machado-2
        option1: "Modernismo"
        option2: "Postmodernismo"
        option3: "Gótico"
        option4: "Barroca"
        correct_option: "c4ca4238a0b923820dcc509a6f75849b"
        category_id: "17"
        category: "Lengua y literatura"
        explanation: ""
        source_url: ""
        correct_answer: "2"
        total_answers: "2"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:36"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"
    },
    {
        statement: "¿De quien es el segundo hijo de lindsey y melanie de la serie QAF?"
        pretty_url: http://doonish.es/pregunta/de-quien-es-el-segundo-hijo-de-lindsey-y-melanie-de-la-serie
        option1: "brian "
        option2: "michael"
        option3: "ben"
        option4: "emmeth"
        correct_option: "c81e728d9d4c2f636f067f89cc14862c"
        category_id: "5"
        category: "Series"
        explanation: ""
        source_url: ""
        correct_answer: "22"
        total_answers: "66"
        difficulty: "Normal"
        creation_date: "2010-09-09 14:06:53"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 11 meses"
    },
    {
        statement: "¿Qué científico francés aisló el flúor mediante electrolisis en 1886?"
        pretty_url: http://doonish.es/pregunta/que-cientifico-frances-aislo-el-fluor-mediante-electrolisis-
        option1: "J. K. Linch"
        option2: "Cristiano R. N. Bommel"
        option3: "J. L. Kalvin"
        option4: "Ferdinand F. H. Moissan"
        correct_option: "a87ff679a2f3e71d9181a67b7542122c"
        category_id: "9"
        category: "Ciencias"
        explanation: ""
        source_url: ""
        correct_answer: "1"
        total_answers: "1"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:35"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"
    }
]

Nota: La respuesta correcta correct_option se obtiene del siguiente modo: md5($x . $password) donde $x es un entero entre 1 y 4 que indica cual de las cuatro opciones es la correcta y $password es el password del desarrollador que esta usando la API. Esto lo hacemos para evitar que el usuario que juega vea el codigo JSON de la pregunta pueda ver cual es la respuesta correcta. correct_answer es el número total de gente que ha acertado esta pregunta, asi como total_answers es el número total de gente que ha respondido a esta pregunta. Con estos datos se calcula el nivel dificultad, pero también se puede calcular por ejemplo el porcentaje de acierto de la pregunta.

→ arriba

GET question/:category.json

Devuelve preguntas del juego de la categoría que se especifique en la url. La respuesta incluye el enunciado, las distintas opciones, la opción correcta, la URL de la pregunta en la web, la categoría de la pregunta, la dificultad y datos del usuario que ha creado la pregunta.

La categoría puede tomar cualquier pretty_url del listado de categorias válidas de doonish. Para mas información consulta la documentación de GET categories.json.

URL del recurso

http://doonish.es/api/question/:category.json

Parámetros

user obligatorio

Es el usuario de la API.

Ejemplo:luis

hash obligatorio

Es el hash de la llamada a la API. El hash de cada llamada esta formado a partir de una funcion de hash (md5) donde el parámetro es la concatenación de un string fijo + el password de la API.

Ejemplo:a4b98f595267d47e383cf946ce8a0bde

id obligatorio

Es el id del usuario que visualizara la pregunta. Puede ser un string cualquiera, pero de la manera en que funciona es que cuando se devuelven preguntas se marcan como vistas para el usuario con el id especificado, de modo que para este usuario nunca mas se va a devolver esta pregunta. En futuras versiones de la API se van a proveer métodos para dar de alta usuarios y poder sincronizar usuarios de la web con usuarios de las aplicaciones clientes de la API.

Ejemplo:389bda99872822de04c8f00da90a0bde

amount opcional

Es la cantidad de preguntas que queremos obtener. Por defecto tiene un valor de 10.

Ejemplo:15

Ejemplo

http://doonish.es/api/question/deportes.json?user=[USUARIO]&hash=[HASH]&amount=4&id=12345

[
    {
        statement: "¿Quién ganó la Copa del Rey 2011?"
        pretty_url: http://doonish.es/pregunta/quien-gano-la-copa-del-rey-2011
        option1: "Barcelona"
        option2: "Real Madrid"
        option3: "Villarreal"
        option4: "Valencia"
        correct_option: "c81e728d9d4c2f636f067f89cc14862c"
        category_id: "1"
        category: "Deportes"
        explanation: ""
        source_url: ""
        correct_answer: "1"
        total_answers: "2"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:23"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"

    },
    {
        statement: "¿Qué piloto ganó la Fórmula 1 en 1951?"
        pretty_url: http://doonish.es/pregunta/que-piloto-gano-la-formula-1-en-1951-2
        option1: "Mike Hawthorn"
        option2: "Jim Clark"
        option3: "Juan Manuel Fangio"
        option4: "Niki Lauda"
        correct_option: "eccbc87e4b5ce2fe28308fd9f2a7baf3"
        category_id: "1"
        category: "Deportes"
        explanation: ""
        source_url: ""
        correct_answer: "2"
        total_answers: "3"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:38"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"
    },
    {
        statement: "¿Quién fue el primer presidente de la historia del F.C.Barcelona?"
        pretty_url: http://doonish.es/pregunta/quien-fue-el-primer-presidente-del--fcbarcelona
        option1: "Santiago Bernabeu"
        option2: "Hans Gamper"
        option3: "Joan Gamper"
        option4: "Gualteri Wild"
        correct_option: "a87ff679a2f3e71d9181a67b7542122c"
        category_id: "1"
        category: "Deportes"
        explanation: ""
        source_url: http://www.fcbarcelona.es/web/castellano/club/historia/etapes_historia/etapa_1.html
        correct_answer: "3"
        total_answers: "26"
        difficulty: "Asequible"
        creation_date: "2011-03-28 17:36:30"
        user: "nicorc"
        user_image_50: http://www.gravatar.com/avatar/a4b67614753b08674dd42464033b292e?s=50&d=http%3A%2F%2Fdoonish.es%2Fimg%2Fusers%2Fdefault-50.png
        user_image_100: http://www.gravatar.com/avatar/a4b67614753b08674dd42464033b292e?s=100&d=http%3A%2F%2Fdoonish.es%2Fimg%2Fusers%2Fdefault-100.png
        user_url: http://doonish.es/usuario/nicorc
        time_ago: "hace 4 meses"
    },
    {
        statement: "¿Qué ex-jugador de la NBA anotó 100 puntos en un partido?"
        pretty_url: http://doonish.es/pregunta/que-ex-jugador-de-la-nba-anoto-100-puntos-en-un-partido-2
        option1: "Wilt Chamberlain"
        option2: "Michael Jordan"
        option3: "Scottie Pippen"
        option4: "Karl Malone"
        correct_option: "c4ca4238a0b923820dcc509a6f75849b"
        category_id: "1"
        category: "Deportes"
        explanation: ""
        source_url: ""
        correct_answer: "2"
        total_answers: "3"
        difficulty: "Sin valorar"
        creation_date: "2011-06-10 17:25:26"
        user: null
        user_image_50: null
        user_image_100: null
        user_url: http://doonish.es/usuario/
        time_ago: "hace 2 meses"
    }
]

Nota: La respuesta correcta correct_option se obtiene del siguiente modo: md5($x . $password) donde $x es un entero entre 1 y 4 que indica cual de las cuatro opciones es la correcta y $password es el password del desarrollador que esta usando la API. Esto lo hacemos para evitar que el usuario que juega vea el codigo JSON de la pregunta pueda ver cual es la respuesta correcta. correct_answer es el número total de gente que ha acertado esta pregunta, asi como total_answers es el número total de gente que ha respondido a esta pregunta. Con estos datos se calcula el nivel dificultad, pero también se puede calcular por ejemplo el porcentaje de acierto de la pregunta.

→ arriba