GalipediaBox, Usando o API da Galipedia

Unha das funcionalidades implementadas no proxecto GalDic é a posibilidade de amosar os resultados da pesquisa procurando na galipedia (ou en calquer outro sitio que empregue mediawiki).

Este cliente fai uso do API de mediawiki e realiza peticións directamente dende o navegador cliente contra o servizo da wikipedia empregando a técnica JSONP (JSON with Padding), sen que sexa preciso empregar o servidor do sitio como proxy.

Detalle do ficheiro SMD para traballar coa galipedia:

{
    "SMDVersion": "2.0",
    "id": "http://gl.wikipedia.org/w/api.php",
    "description": "Galipedia API",    

    transport: "JSONP",
    envelope: "URL",
    additionalParameters: true,
    target: "http://gl.wikipedia.org/w/api.php",
    parameters: [
        { name: "format", optional: false, "default": "json" }
    ],

    services: {
        opensearch: {
            parameters: [
                { name: "action", default: "opensearch", optional: false },
                { name: "search", type: "string", optional: false}
            ]
        },
        
        query: {
            parameters: [
                { name: "action", default: "query", optional: false },
                { name: "prop",   default: "revisions", optional: false },
                { name: "titles", optional: false }
            ]
        },
        
        parse: {
            parameters: [
                { name: "action", default: "parse", optional: false },
                { name: "prop",   default: "text", optional: false },
                { name: "page",   optional: false }
            ]
        }
    }
}

O ficheiro SMD define o tipo de transporte, a url á que chamar e os métodos, xunto cos seus parámetros, simplificando a chamada ao servizo. O seguinte código mostra como facer uso do servizo de wikipedia coa axuda do ficheiro SMD:

var mu = dojo.moduleUrl("vifito.rpc.SMDLibrary", "galipedia-v2.smd");
var wikipedia = new dojox.rpc.Service(mu);
 
wikipedia.query({
    action: "opensearch",
    search: "Main Page"
}).addCallback(this, function(article){
    console.log(article);
});

Este servizo é o que se incorpora no buscador principal da aplicación por medio dun widget Dojo (vifito.galdic.Widgets.GalipediaBox) creado para a aplicación e dispoñible en: GalipediaBox.js

O widget tenta procurar a palabra que se inseríu no buscador principal e no caso de que atope algún resultado na galipedia mostra unha ligazón a un cadro de diálogo co contido atopado.

Un artigo moi interesante tamén se pode atopar no blogue de Sitepen.

Última actualización 2012-08-15
3:18 AM (Europe/Madrid)
Data de creación 2009-12-09
11:00 PM (Europe/Madrid)
Using API mediawiki with dojo toolkit
dojo javascript mashup

Relacionados