Open Platform

Dette er den åbne platform, hvilket er APIet for de danske biblioteker.

Få adgang til API'et

Man skal være et dansk bibliotek, eller DDB, for at få API-adgang. Andre må sende forespørgslen gennem en af disse.
Forespørgslen sendes til DBCs kundeservice (https://kundeservice.dbc.dk/) med følgende informationer: Herefter vil biblioteket modtage et eller flere CLIENT_ID / CLIENT_SECRET, der kan bruges til at få adgang til APIet.

Supplerende dokumentation

Kildekode, issue tracking, osv. findes på github:dbcdk/serviceprovider, Her finder man også specifikationer, og yderligere dokumentation i doc/. Eksempelforespørgsler, og en "getting started guide" er tilgængelig her: example.html guide.html.

English

This is the Open Platform, which is the API for the danish public libraries.

Danish libraries can get access directly from DBC, see the description in danish above. Others have to go through a library to get access.

Tokens

Alle kald til API'et kræver en gyldig token. Tokens til driftmiljø'et hentes fra https://auth.dbc.dk/. Dette er en OAuth2 server, hvor der kan logges på med "password-grants". Ved OAuth2-login er username: "Lånernummer@Biblioteks-agency" og password er pinkode.

Det er muligt at udelade lånernummer, hvorved man logger ind som en anonym bruger (OAuth2 password er så det samme som username).

Hvis man udelader lånernummer, kan man også udelade biblioteks-agency, hvorved man logger ind som anonym bruger på nationalt niveau, i stedet for på et givent bibliotek.

Det er muligt at hent et token ud fra et ClientId/ClientSecret med følgende formular:

ClientId:(påkrævet)
ClientSecret:(påkrævet)
Lånernummer:(optional)
PIN:(kun påkrævet hvis lånernummer)
Bibliotek-agency:(påkrævet hvis lånernummer, ellers optional)

Eller man kan sende en request direkte til OAuth2 serveren. Herunder eksempel med curl:

curl --user "${CLIENT_ID}:${CLIENT_SECRET}" -X POST https://auth.dbc.dk/oauth/token -d "grant_type=password&username=${USERNAME}&password=${PASSWORD}"

Hvor ${USERNAME} er Lånernummer@Biblioteks-agency, og ${PASSWORD} er pinkode (eller det samme som ${USERNAME} ved anonym bruger). Eksempler på username/password er:

Type Bibliotek Lånernummer ${USERNAME} ${PASSWORD} Kommentar
Brugerlogin - Låner på bibliotek Specifikt bibliotek, fx Københavns Biblioteker (agency DK-710100) Lånernummer, eksempelvis: 12345678 12345678@DK-710100 1234 Brugerens faktiske pin-kode, eksempelvis "1234"
Bibliotekslogin - uden låner Specifikt bibliotek, fx Københavns Biblioteker (agency DK-710100) Ingen bruger / lånernummer @DK-710100 @DK-710100 Der er ingen pinkode, så derfor er ${PASSWORD} det samme som ${USERNAME}: "@DK-710100"
Annonym - ingen låner eller bibliotek angivet Ingen bibliotek Ingen bruger / lånernummer @ @ Der er ingen pinkode, så derfor er ${PASSWORD} det samme som ${USERNAME}: "@"