Euskadi.net-eko bilatzailearen Java-rentzako API bertsioa
Argitalpen-data:
Bere garaian dokumentatu genuen nola Euskadi.eus-eko bilaketa emaitzak API bidez atzitu daitezkeen. Orduan eskatu zitzaigun Java lengoaiarako ere bertsio bat prestatzea, eta horixe egin dugu.
API azpiegitura orokorrak kaukera hauek eskaintzen ditu Euskadi.net-en baitan:
- Euskadi.net-en katalogaziorako erabiltzen diren etiketa-taxonomiaren kudeaketa.
- Edukiekin eta bere hizkuntza-bertsioekin joka daiteke: sortu, ezabatu, eraldatu, ordenatu…
- Atari, web-orri eta orrien barruko esparru bisualekin lan egin daiteke.
- Edukiak argitara daitezke, atari-orriak, etab.
- Edozein eduki bilaketa motoretan indexatu daiteke.
- Edukiak edo atari-orriak bilatu daitezke.
API desberdinak (edukiak, ataria, argitaratzailea, bilatzailea, katalogazio etiketak, etab.) abstraitzen dira programatzailearen logikatik.
Izatez, APIak erabiltzen dituzte:
- azpiegituraren erabiltzaile-interfazeek.
- Edukia sortzeko, argitaratzeko eta indexatzeko sail bakoitzean erabiltzen diren tresnek.
API mota guzti horien artean, Bilatzailearena da interesgarrienetakoa,kanpotik deituta edukiak aurkitu eta eraldatu daitezkeelako. API honek bi zapore ditu, bata, lehengoa, Pseudo-Rest erako API bat zen (XML eran ematen zituen emaitzak), eta oraingoa, aldiz, berria, Java-rako egin da. Hona aukera berri honen esteka nagusiak:
- Dokumentazioa API Java.
- API Java liburutegien deskarga: Zip fitxategi batean.
Pseudo-REST erako APIak zenbait arazo ditu berarekin:
- URL batean eskaera bat kodetzea konplexua da, ez oso intitiboa, eta frogatu/saiatu eran errore asko igaro daitezke asmatu arte (hala ere, Euskadi.net atarietako bilaketek zein URL dituzten begiratzeak laguntzen du).
- Emaitzak XML eran tratatzea lan zaila izan daiteke.
Java APIak, berriz, eskaera zein emaitzak tratatzeko erraztasunak dakartza.
Desberdintasun nabarmen hauek ikusteko, horra:
- URL batean kodetutako bilaketa:
- http://www.euskadi.net/r01hSearchResultWar/r01hPresentationXML.jsp?
r01kTgtPg=1&
r01kPgCmd=1&
r01kSrchSrcId=contenidos.inter&
r01kQry=tC:euskadi;tF:procedimientos_administrativos;tT:ayuda_subvencion;
m:procedureStatus.EQ.16;
o:createDate.ASC;
cA:label1;
pp:r01NavBarBlockSize.9,r01PageSize.10
- http://www.euskadi.net/r01hSearchResultWar/r01hPresentationXML.jsp?
- Eta emaitzen orria, XMLn tratatu behar dena:

Java APIarekin errazagoa da hori guztia:
- Query edo bilaketa honela sortzen da:
[java]R01MSearchQuery qry = R01MSearchQuery.create()
.typedInAnyOfTheeseClusters(R01MTypoClusterOID.forId(“euskadi”))
.typedInAnyOfTheeseFamilies(R01MTypoFamilyOID.forId(“procedimientos_administrativos”))
.typedInAnyOfTheeseTypes(R01MTypoTypeOID.forId(“ayuda_subvencion”))
.mustMeetTheeseMetaDataConditions(R01MSearchQueryNumberMetaData
.forMetaData(“procedureStatus”)
.usingCondition(R01MSearchQueryNumberMetaDataCondition.EQUALS)
.with(16))
.mustHaveStructureLabel(“label1”);[/java] - Eta bilaketa sesio bat sortu behar da, emaitzak zerbitzaritik lortzeko: zenbat emaitza, paginazioa, item kopurua:
[java]R01MSearchSession session = R01MSearchSession.forQuery(qry);R01MSearchResultItem[] items = session.getCurrentPageSearchResults()
StringBuffer dbg = new StringBuffer();
if (items != null) {
for (R01MSearchResultItem item : items) {
dbg.append(“-“).append(item.getContentName())
.append(“: “).append(item.getDocumentName()).append(“\r\n”);
}
}[/java]
Zergatik ez da lehenago askatu Jaca API hau?
Zenbait arrazoi izan dira horretarako.
- Oraingo APIa zaharra da (2005ekoa) eta oinarria Java JDK 1.4 dauka, gaur egunean atzean geratu den teknologia bertsio bat, zeinean ezin diren egin gaur “normalak” diren eragiketak, hala nola operazio generikoak.
- APIa barne-erabilpeneko beste funtzio batzuekin nahasian dago, eta horiek (edukiak nola sortu eta arguitaratu, adibidez) esklusiboki Intranetekoak dira. Hemen, aldiz, kanpora begirako funtzioak garatu behar ziren.
- Bilatzailearen APIa ez zen diseinatu kanpotiko datuen atzipen automatikorako, Open Data Euskadi baino askoz lehenagoko azpiegitura baita.
Orain, alderdi guztiak horiek denak ari dira kontuan hartzen Euskadi.net-eko API azpiegitura osoaren berrikuspen lan batean, eta oraingoz Java API hau ateratzea aurrerapen bat den arren, are abantaila hobeagoak izango ditugu epe labur edo ertainean:
- APIa erabilgarriagoa izango da kanpoko garatzaileentzat.
- Java JDK 1.6 bertsioraino eguneratuko da.
- Euskadi.net-eko edukien modeloak bateratu egingo dira Open Data kontzeptuekin, berrerabilpena errazteko.
Baina berrikuntza horiek iritsi bitartean, bertsio hau ona izan daitekeela uste dugu. Oraingoz aprobak ondo joan zaizkigu, baina ezer igartzen baduzue, jakinarazi eta konpontzen saiatuko gara. Eskerrik asko.