# Provider API v0.6.5

22 grupper · 54 operationer · 43 stier · 379 skemaer
Kilde: https://plas.redia.dk/provider/v0.6.5/

Den grænseflade et bibliotekssystem stiller til rådighed, så biblioteksprodukter kan læse og skrive lånere, lån, reserveringer og beholdning.

Genereret fra `provider_v0_6_5.yaml` · OpenAPI 3.0.0

- **Implementeres af:** Bibliotekssystemet — Bibliofil, Cicero, Koha eller et andet
- **Kaldes af:** Biblioteksprodukter — apps, selvbetjeningsautomater, hjemmesider
- **Profiler af Provider API:** [Search API](https://plas.redia.dk/search/v0.6.5/) · [Content API](https://plas.redia.dk/content/v0.6.5/)

Provider API'et er PLAS' hovedflade. Implementerer et bibliotekssystem det, kan
ethvert produkt der taler PLAS arbejde med biblioteket uden at kende systemet
underneden — og et produkt der er bygget mod ét bibliotek virker hos det næste.

Fladen dækker det et bibliotek gør hver dag: låneren og hendes samtykker, lån
og fornyelser, reserveringer, gebyrer og betaling, beholdning og lokationer,
`checkout` og `checkin`, søgning i katalogets værker og udgivelser, og de
arrangementer biblioteket udgiver. Hver del har sin egen gruppe i menuen.

## Sådan integrerer du

Der er tre ting du skal have på plads, og de står i den rækkefølge du møder dem:

1. **Base-URL'en.** Specifikationen har ingen `servers`-blok, så adressen er
   providerens og aftales med den. Regn ikke med at den er den samme fra
   bibliotek til bibliotek, heller ikke hos samme provider.
2. **Et token.** `POST /authentication/oauth2/token` med `client_id`,
   `client_secret` og `grant_type=client_credentials` giver et `Bearer`-token,
   som sendes med på alle øvrige kald.
3. **Versionen.** Send `version` som query-parameter på hvert kald. Understøtter
   provideren den ikke, får du fejlkode `600` — altså en fejl du kan handle på,
   frem for et svar der ser rigtigt ud.

Det ene kald der hverken kræver token eller aftale er `GET /version`. Start
dér: svarer den, er base-URL'en rigtig. Hele vejen igennem, med eksempler,
står i [Kom i gang](/kom-i-gang/).

## Forholdet til de andre API'er

Search API og Content API er **profiler** af denne flade: hver eneste af deres
operationer findes her, med samme `operationId`, metode og sti. De findes for
at et system kan implementere ét område alene — søgning eller arrangementer —
uden at implementere hele Provider API'et. Implementerer du Provider, har du
allerede dem begge.

Vendor Consumer API er derimod den modsatte retning: den flade dit eget produkt
stiller til rådighed, så bibliotekssystemet kan sende noget til dig.

## Fælles for operationerne

Disse definitioner refereres af mange operationer. De er dokumenteret ét sted her; en operation viser kun det der er dens eget, plus de koder den kan svare med.

### Autentificering

- `BearerAuth` · `oauth2` · Flow: `clientCredentials` · Token-URL: `/authentication/oauth2/token`

### Parametre

- `version` (i `query`, [`Version`](https://plas.redia.dk/provider/v0.6.5/schemas/#Version), valgfri, bruges af 51 af 54) — The version of Open Library the vendor expects to receive, if this version isn't supported by the provider an error code 600 (Unsupported Open Library API version) is returned.
- `ui_language` (i `query`, `string`, valgfri, bruges af 8 af 54) — The UI language the provider will return the content in.

All ui language codes should be on this list https://www.loc.gov/marc/languages/


### Fejlsvar

- `HttpCode400` ([`Errors`](https://plas.redia.dk/provider/v0.6.5/schemas/#Errors), bruges af 53 af 54) — The list of errors.
- `HttpCode401Bearer` (`Intet indhold i svaret.`, bruges af 51 af 54) — Bearer token invalid, missing, or expired.
- `HttpCode404` (`Intet indhold i svaret.`, bruges af 37 af 54) — Resource not found.
- `HttpCode401UnauthorizedOAuthLogin` (`Intet indhold i svaret.`, bruges af 1 af 54) — Unauthorized login.

## Alle grupper

- [Version](https://plas.redia.dk/provider/v0.6.5/version/) — 1 operation
- [Authentication](https://plas.redia.dk/provider/v0.6.5/authentication/) — 2 operationer
- [Configuration](https://plas.redia.dk/provider/v0.6.5/configuration/) — 4 operationer
- [Patron Authentication](https://plas.redia.dk/provider/v0.6.5/patron-authentication/) — 4 operationer
- [Patron Registration](https://plas.redia.dk/provider/v0.6.5/patron-registration/) — 3 operationer
- [Patron Configuration](https://plas.redia.dk/provider/v0.6.5/patron-configuration/) — 1 operation
- [Patron](https://plas.redia.dk/provider/v0.6.5/patron/) — 6 operationer
- [Patron Reservation](https://plas.redia.dk/provider/v0.6.5/patron-reservation/) — 4 operationer
- [Patron Loan](https://plas.redia.dk/provider/v0.6.5/patron-loan/) — 2 operationer
- [Patron Fee](https://plas.redia.dk/provider/v0.6.5/patron-fee/) — 1 operation
- [Payment](https://plas.redia.dk/provider/v0.6.5/payment/) — 2 operationer
- [Patron Loan History](https://plas.redia.dk/provider/v0.6.5/patron-loan-history/) — 3 operationer
- [Patron List](https://plas.redia.dk/provider/v0.6.5/patron-list/) — 8 operationer
- [Patron Delete](https://plas.redia.dk/provider/v0.6.5/patron-delete/) — 1 operation
- [Checkout & Checkin](https://plas.redia.dk/provider/v0.6.5/checkout-and-checkin/) — 2 operationer
- [Location](https://plas.redia.dk/provider/v0.6.5/location/) — 1 operation
- [Holding](https://plas.redia.dk/provider/v0.6.5/holding/) — 1 operation
- [Work](https://plas.redia.dk/provider/v0.6.5/work/) — 2 operationer
- [Publication](https://plas.redia.dk/provider/v0.6.5/publication/) — 1 operation
- [Suggestion](https://plas.redia.dk/provider/v0.6.5/suggestion/) — 1 operation
- [Agent](https://plas.redia.dk/provider/v0.6.5/agent/) — 2 operationer
- [Content Event](https://plas.redia.dk/provider/v0.6.5/content-event/) — 2 operationer
- [Skema-indeks](https://plas.redia.dk/provider/v0.6.5/schemas/) — 379 skemaer
