Vés al contingut

Tema de Viquipèdia:La taverna/Tecnicismes

QuimGil (discussiócontribucions)
Dvdgmz (discussiócontribucions)

Ho pots explicar una mica? És com un proxy on fer consultes a Viquipèdia que estan en cachè? Però es fa servir per al VisualEditor, per què? És alternativa a la API de sempre per aplicacions externes a Viquipèdia? O no he entès res? :-)

QuimGil (discussiócontribucions)

rest.wikimedia.org ofereix una API per a obtenir continguts de Wikipedia d'una manera molt ràpida i eficient, fent bon ús de memòria cau i del format en què les dades són trameses. És disponible per a tothom, incloses les extensions que han de treballar amb continguts com ara l'editor visual. De fet aquesta setmana els desenvolupadors de RESTBase han anunciat que ara l'editor visual fa servir aquesta API en totes les wikipedies (aquesta inclosa), i que han registrat millores d'un 40% en la velocitat de càrrega de pàgines en l'editor visual.

Crec que la velocitat de càrrega es comprova quan l'article és a la memòria cau. És a dir, després de que vosaltres o algú altre hagi obert un article amb l'editor visual. He fet una prova amb Fiódor Dostoievski. La primera vegada que l'he carregat amb l editor visual ha trigat el temps a què ens té acostumats aquests editors (una mica lentet, però decent). La segona vegada, però, ha anat molt mes ràpid, i llavors he provat amb un altre navegador i la càrrega ha estat ben ràpida a la primera. No sé si això ha estat així de casualitat o perquè aquest és el disseny, però potser en Marcoil en sap més.

Marcoil (discussiócontribucions)

Efectivament, però a més la intenció és guardar a RESTbase les versions fins i tot abans que els usuaris les demanin. Ara encara s'està carregant (hi ha moltes moltes pàgines), però en el futur quan una pàgina es canvii, RESTBase carregarà immediatament la versió HTML. Això farà que tant l'editor visual com, en el futur, les pàgines al mòbil carreguin molt més ràpid.

Si teniu qualque dubte de com funciona demanau!

Dvdgmz (discussiócontribucions)

Pecant d'ignorant... perquè l'editor visual necessita treballar amb Wikiedia a través d'una API? No està integrat al codi i treballa directament sobre la base de dades? I tinc una altra pregunta però divideixo el fil.

Dvdgmz (discussiócontribucions)

L'altra pregunta: quin profit es pot treure de RESTbase realment "des de fora" de Wikipedia, per desenvolupadors web o d'apps mòbils? La qüestió és que poden fer el mateix que feien però més ràpid?

Marcoil (discussiócontribucions)

L'editor visual només treballa sobre HTML, no directament amb wikitext. Per això necessita, en passar al mode d'edició, demanar l'HTML i després enviar la pàgina canviada, que qualcú la re-tradueixi a wikitext, i després guardar-la a la base de dades. Fins ara per fer les conversions l'editor visual les demanava directament a Parsoid (el projecte en el qual jo faig feina), però això volia dia que si la pàgina no estava en memòria cau (és a dir, no s'havia editat feia poc), s'havia de tornar a convertir, un procés que pot ser un poc lent. Ara l'editor visual demana la pàgina convertida a RESTBase, que guarda diferents versions de cada pàgina automàticament, amb el que la majoria de vegades quan es passa al mode d'edició no s'ha de tornar a convertir, RESTBase ja en té una còpia llesta per editar-se.

Marcoil (discussiócontribucions)

Apart de la millora en velocitat, també hi ha la millora en el format de les dades, que fa molt més fàcil emprar els continguts per part d'aplicacions externes. Per posar un exemple, si a una pàgina (diguem, una que tenc per proves) hi ha una plantilla com

{{echo|foo}}

agafant l'HTML directament de la pàgina (view-source:https://en.wikipedia.org/wiki/User:Marcoil/Tests/Tpl_Params) trobam

<p>foo</p>

Com es veu, no hi ha cap dada que permeti saber res sobre el text. En canvi, si ho agafam des de RESTBase (http://rest.wikimedia.org/en.wikipedia.org/v1/page/html/User%3AMarcoil%2FTests%2FTpl_Params), tenim

<p about="#mwt1"
     typeof="mw:Transclusion"
     id="mwAQ"
    data-mw='{"parts":[{"template":{
        "target":{"wt":"echo","href":"./Template:Echo"},
        "params":{"1":{"wt":"foo"}},"i":0}}]}'>
    foo
</p>

Tota aquesta informació extra es pot emprar per moltes coses. L'editor visual l'empra per saber quan un text ve d'una plantilla i per tant editar-lo amb el quadre de plantilla, quins paràmetres té, etc. L'aplicació per mòbils pot analitzar la pàgina i treure'n una taula de continguts, o mostrar les imatges en una galeria, etc.

Dvdgmz (discussiócontribucions)

Moltes gràcies per les explicacions, a més amb l'exemple queda molt clar el que fa i les possibilitats que dóna.

Resposta a «ca.wiki REST API»