samsa 2009 ht, arbeta med sfx api & metalib x-server

16
Att jobba med SFX API & MetaLib X-server 17 november 2009 Norrköping

Upload: daniel-forsman

Post on 20-Aug-2015

1.207 views

Category:

Spiritual


3 download

TRANSCRIPT

Page 1: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

Att jobba medSFX API & MetaLib X-server

17 november 2009Norrköping

Page 2: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

Ex Libris produkter erbjuder API:er till de flesta av sina produkter

SFX API

Aleph, MetaLib, och DigiTool X-Services

Verde®, DigiTool, Voyager och Primo SOAP Web services

Avsedda för maskin-till-maskin kommunikation

XML baserade

Utsökningar men även uppdateringar

Ex Libris utvecklar nu REST baserade API:eri enlighet med DLF Discovery Interfaces

Page 3: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

All dokumentation har flyttat till EL Commons

CodeShare – Dokumentation & exempelkodWiki – För erfarenhetsutbyte

www.exlibrisgroup.org

Page 4: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

För att använda API:erna behöver man kunna konsumera XML

Idag inget stöd för JSON

PHP5 - SimpleXML och Xpath

Manipulera DOM – AJAX (Prototype | jQuery)

Page 5: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

SFX API

Enkelt att titta på, kräver ingen autentisering

http://link.libris.kb.se.bibl.proxy.hj.se/sfxjon?sid=google&auinit=J&aulast=Fernandez-Lopez&atitle=Antioxidant+and+antibacterial+activities+of+natural+extracts:+application+in+beef+meatballs&title=Meat+science&volume=69&issue=3&date=2005&spage=371&issn=0309-1740&

sfx.response_type=simplexml

Page 6: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

sfx.response_type

It is possible to select the following types of responses from the SFX server.

1. HTML - Response will be 'regular' SFX menu (not described in this document - not part of API)

2. sfx_api_0_1_xml - OpenURL 0.1 XML response - This is the SFX V2 API described above.

3. simplexml - OpenURL 1.0 response for single Object requests

4. multi_obj_xml - OpenURL 1.0 response for multiple Object requests

5. multi_obj_detailed_xml - OpenURL 1.0 response for multiple Object requests with additional options available

6. service_exist - OpenURL 1.0 response with minimal data

Page 7: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

<target><target_name>LIBRIS_WEBBSÖK_LCL</target_name><target_public_name>LIBRIS</target_public_name><target_service_id>25320000000000000</target_service_id><service_type>getHolding</service_type><parser>UNION::LIBRIS_SEWS20</parser><parse_param/><proxy>no</proxy><crossref>no</crossref><note/><authentication/><char_set>utf8</char_set><displayer/><target_url>

http://libris.kb.se.bibl.proxy.hj.se/hitlist?q=linkisxn:0309-1740 </target_url>

</target>

Page 8: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server
Page 9: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

$openurl = "http://link.libris.kb.se/sfxjon?sid=ALEPH:JUL01&issn=$issn&sfx.response_type=simplexml";

$xml = simplexml_load_file($openurl);

$Base = $xml->targets;

foreach ($Base->target as $target) { if($target->service_type == 'getCitedJournal' ){ echo "<li><a href=". $target->target_url .">

Search for ". $target->target_public_name . "</a></li>"; } if($target->service_type == 'getFullTxt'){ echo "<li><a href=". $target->target_url .">

Fulltext available from ". $target->target_public_name . "</a></li>"; } if($target->service_type == 'getAbstract'){ echo "<li><a href=". $target->target_url .">

Abstract available from ". $target->target_public_name . "</a></li>"; } if($target->service_type == 'getTOC'){ echo "<li><a href=". $target->target_url .">

ToC available from ". $target->target_public_name . "</a></li>"; }}

Page 10: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

MetaLib

Upprätta en session – återanvänd denna för varje anrop

http://ram47:8334/X?op=login_request&user_name=exlibris&user_password=12

<x_server_response metalib_version="4.00 (20)"> <login_response> <auth>Y</auth> <session_id new_session="Y">PB22QIX32KJK8AV3GCEPNU19I2HJV</session_id> </login_response></x_server_response>

Page 11: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

function getSession($u,$p){

$get_session = "http://samsok.libris.kb.se/X?op=login_request&user_name=".$u."&user_password=".$p."";

$xml = simplexml_load_file($get_session);

$Base = $xml->login_response;

$session = $Base->session_id;

return $session;}

Page 12: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server
Page 13: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

function ml_search($session, $db_id, $wrd){$do_search = "http://samsok.libris.kb.se/X?op=find_request&wait_flag=Y&find_request_command=WRD=($wrd)&find_base_001=$db_id&session_id=$session";

$xml = simplexml_load_file($do_search);$Base = $xml->find_response->base_info;$doc_count = $Base->no_of_documents; $set_number = $Base->set_number; if($doc_count >= '1'){ $sb_url = "http://hbopac.lingonline.jonkoping.se/opac/search_result.aspx?TextFritext=$wrd"; echo "<li><a href=$sb_url>Finns &auml;ven p&aring; stadsbiblioteket</a><br>"; }else{ echo "<li>Finns inte p&aring; stadsbiblioteket<br>";}

Page 14: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server
Page 15: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server
Page 16: Samsa 2009 ht, Arbeta med SFX API & MetaLib X-server

function getAllCategories($session){ $get_cats = "http://samsok.libris.kb.se/X?op=retrieve_categories_request&requester_ip=193.10.208.75&session_id=$session";

$xml = simplexml_load_file($get_cats); $Base = $xml->retrieve_categories_response; foreach ($Base->category_info as $cat){ $category_name = $cat->category_name; echo "<fieldset><legend>".$category_name."</legend>"; foreach($cat->subcategory_info as $sub){ $subcategory_name = $sub->subcategory_name; $subcategory_count = $sub->no_bases; $subcategory_seq = $sub->sequence; echo "<a href=getDBbyCat.php?sequence=". $subcategory_seq."&session=".$session."&name=".$subcategory_name.">".$subcategory_name."</a> [".ltrim($subcategory_count,0)."]<br> "; } echo "</fieldset>"; } }