[ IN ENGLISH ]
Store dele af H.C. Andersen-Centrets viden er fra d. 27.3. 2013 gjort frit tilgængelige som REST web services.
Web services egner sig ikke til almindelig web-browsing, men til udviklere på andre systemer, der kan hente data og vise dem, som de vil.
Indholdslister
Se forneden under Individuelle data, hvordan man henter enkelte breve, personer og bibliografi-poster.- Alle breve: https://andersen.sdu.dk/service/letters
- Personer: https://andersen.sdu.dk/service/people
- Bibliografi: https://andersen.sdu.dk/service/biblio
Breve efter person og/eller dato eller periode
Man før alle breve fra og til en person ved at angive person-ID efter mønstret /letters/person/{person-ID}
, f.eks. https://andersen.sdu.dk/service/letters/person/2.
Breve kan hentes efter dato efter mønstret /letters/date/{YYYY[-MM[-DD]]}
, dvs. /letters/date/
efterfulgt af et år, år-måned eller år-måned-dag. Eksempler:
- Breve fra 1823: https://andersen.sdu.dk/service/letters/date/1823
- Breve fra december 1823: https://andersen.sdu.dk/service/letters/date/1823-12
- Breve fra 1. december 1823: https://andersen.sdu.dk/service/letters/date/1823-12-01
Person og dato/periode kan kombineres efter mønstret /letters/person/{person-ID}/date/{YYYY[-MM[-DD]]}
, f.eks. alle breve til og fra H.C. Ørsted i 1846: https://andersen.sdu.dk/service/letters/person/1126/date/1846.
Breve med usikker datering
Brevbasen indeholder breve, hvis datering er usikker. Usikkerheden kan gælde enten år, måned eller dag. Breve fra 1823 med uvis måned er indeholdt i visningen af breve fra 1823 (første link ovenfor), men kan også vises for sig, hvis man angiver 00
for måned:
- Breve med uvis måned fra 1823: https://andersen.sdu.dk/service/letters/date/1823-00
- Breve med uvist år: https://andersen.sdu.dk/service/letters/date/0000
- Breve fra september måned med uvist år: https://andersen.sdu.dk/service/letters/date/0000-09
Bemærk: ukomplette oplysninger
Nogle breve har flere afsendere eller modtagere. Det ignoreres i denne web service. Hent det enkelte brev for at få komplette oplysninger.
Udgivelser (bibliografi) efter dato eller periode og/eller sprog
Udgivelser kan hentes efter dato efter mønstret /biblio/date/{YYYY[-MM[-DD]]}
, dvs. /biblio/date/
efterfulgt af et år, år-måned eller år-måned-dag. Eksempler:
- Udgivelser fra 1822: https://andersen.sdu.dk/service/biblio/date/1822
- Udgivelser fra april 1835: https://andersen.sdu.dk/service/biblio/date/1835-04
- Udgivelser fra 2. april 1875: https://andersen.sdu.dk/service/biblio/date/1875-04-02
Udgivelser på et bestemt sprog hentes efter mønstret /biblio/language/{sprogkode}
, dvs. /biblio/language/
efterfulgt af en sprogkode på tre små bogstaver (ISO 639-2/B). For eksempel al litteratur på polsk fra vores database: https://andersen.sdu.dk/service/biblio/language/pol.
Sprog og sprogkoder
Bemærk, at tysk ('ger') inkluderer plattysk ('nds').
Tabellen indeholder alle mulige sprog i vores database. Der er ikke nødvendigvis registreret litteratur på dem alle.
Sprog | Sprogkode |
---|---|
afrikaans | afr |
albansk | alb |
arabisk | ara |
armensk | hye |
bosnisk | bos |
bulgarsk | bul |
dansk | dan |
engelsk | eng |
esperanto | epo |
estisk | est |
finsk | fin |
fransk | fre |
frisisk | fry |
færøsk | fao |
galicisk | glg |
græsk | gre |
grønlandsk | kal |
hebræisk | heb |
hindi | hin |
hollandsk | dut |
indonesisk | ind |
interlingua | ina |
irsk | gle |
islandsk | ice |
italiensk | ita |
japansk | jpn |
jiddisch | yid |
katalansk | cat |
kinesisk | chi |
kroatisk | hrv |
lettisk | lav |
litauisk | lit |
maltesisk | mlt |
moldavisk | mol |
norsk | nor |
persisk | fas |
plattysk | nds |
polsk | pol |
portugisisk | por |
rumænsk | ron |
russisk | rus |
serbisk | srp |
slovakisk | slo |
slovensk | slv |
somali | som |
spansk | spa |
svensk | swe |
tatarisk | tat |
tjekkisk | cze |
tyrkisk | tur |
tysk | ger |
ukrainsk | ukr |
ungarsk | hun |
urdu | urd |
vietnamesisk | vie |
volapük | vol |
zulu | zul |
Sprog og dato/periode kan kombineres efter mønstret /biblio/date/{YYYY[-MM[-DD]]}/language/{sprogkode}
, f.eks. alle engelske udgivelser i 1847: https://andersen.sdu.dk/service/biblio/date/1847/language/eng.
Individuelle data
Enkelte emner, f.eks. et brev, hentes efter disse mønstre:
- Brev:
/service/letters/{brev-ID}
f.eks. https://andersen.sdu.dk/service/letters/246 - Person: /service/people/{person-ID}
f.eks. https://andersen.sdu.dk/service/people/1 - Bibliografisk beskrivelse: /service/biblio/{bibliografi-ID}
f.eks. https://andersen.sdu.dk/service/biblio/1
Teknik
Request method
Den eneste fungerende request method er GET
, dvs. man kan hente, men ikke ændre data.
Formater og parametre
Servicen returnerer JSON eller JSONP, hvis man tilføjer '?callback={callback-identifier}'
, altså f.eks. https://andersen.sdu.dk/service/biblio/1?callback=return. callback-identifier virker med følgende værdier, ellers får man JSON:
'break', 'do', 'instanceof', 'typeof', 'case',
'else', 'new', 'var', 'catch', 'finally', 'return', 'void', 'continue',
'for', 'switch', 'while', 'debugger', 'function', 'this', 'with',
'default', 'if', 'throw', 'delete', 'in', 'try', 'class', 'enum',
'extends', 'super', 'const', 'export', 'import', 'implements', 'let',
'private', 'public', 'yield', 'interface', 'package', 'protected',
'static', 'null', 'true', 'false'
Nogle data indeholder HTML-entiteter for specielle tegn, f.eks. denne beskrivelse fra bibliografien med græske bogstaver: https://andersen.sdu.dk/service/biblio/17779. Man kan føje htmlencode=false
til forespørgslen for at få tegnene rent: https://andersen.sdu.dk/service/biblio/17779?htmlencode=false.
htmlencode=false
kombineret med JSONP: https://andersen.sdu.dk/service/biblio/17779?callback=return&htmlencode=false.
htmlencode=false
er relevant for breve og bibliografi, altså /letters/{brev-ID}
, /biblio/{bibliografi-ID}
og /biblio/date/{YYYY[-MM[-DD]]}/[language/{sprogkode}]
.
Standarder
Sprog-koderne følger ISO 639-2/B, med tilføjelsen 'hca' for dansk på H.C. Andersens tid.
Hvordan?
For at få et overblik over strukturen af den enkelte web service anbefaler vi at inspicere output med f.eks. apps eller udvidelser til Google Chrome eller RESTClient til Firefox.
Man kan indlæse JSON fra web servicen v.hj.a. mange forskellige programmeringssprog, bl.a. PHP, C# og JQuery / Javascript.
Simpelt kodeeksempel i PHP
# The service URI. Letters to and from Georg Brandes: $letters_uri = "https://andersen.sdu.dk/service/letters/person/139"; # Initializes a new session and return a cURL handle $curl_handle = curl_init($letters_uri); # Set CURL options: return as string curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); # Open CURL session: $json_letters = curl_exec($curl_handle); # Now that we've got the JSON in $letters, we can close the session and save server resources: curl_close($curl_handle); # Decode the JSON. True means into an associative array: $letters = json_decode($json_letters, true); # Getting the number of letters. Minus 2, because two rows are taken by meta information. The letters have numeric keys, starting at 0. $number_of_letters = count($letters); # Printing number of letters echo "<p>Der er " . $number_of_letters . " breve fra og til Georg Brandes i HCA-centrets database.</p>"; # create a table. Feel free to create neater HTML: $table = ""; $tablerows = ""; /** * Available array keys and example values: * * "Date": "1868-04-20", * "ID": "23360", * "URI": "https://andersen.sdu.dk/service/letters/23360", * "Sender name": "H.C. Andersen", * "Receiver name": "Georg Brandes", * "Sender ID": "1", * "Receiver ID": "139", * "Sender URI": "https://andersen.sdu.dk/service/people/1", * "Receiver URI": "https://andersen.sdu.dk/service/people/139" */ # looping through the array of letter data for($x = 0; $x < $number_of_letters; $x++) { $tablerows .= "<tr>"; $tablerows .= "<td><a href=\"https://andersen.sdu.dk/brevbase/brev.html?bid=" . $letters[$x]["ID"] . "\">" . $letters[$x]["Date"] . "</a></td>"; $tablerows .= "<td>" . $letters[$x]["Sender name"] . "</td>"; $tablerows .= "<td>" . $letters[$x]["Receiver name"] . "</td>"; $tablerows .= "</tr>"; } $table = "<table class=\"sortTabel\"> <tr><th>Dato</th><th>Afsender</th><th>Modtager</th></tr> " . $tablerows . "</table>"; echo $table; ?>