# Search API v0.6.5

6 grupper · 8 operationer · 8 stier · 147 skemaer
Kilde: https://plas.redia.dk/search/v0.6.5/

Den læsende opslags-grænseflade. Søg og hent værker, udgivelser, aktører og forslag gennem ét forespørgselssprog.

Genereret fra `search_v0_6_5.yaml` · OpenAPI 3.0.0

- **Implementeres af:** Bibliotekssystemet — eller en søgetjeneste foran det
- **Kaldes af:** Alt der viser et katalog — apps, hjemmesider, automater
- **Profil af Provider API:** [8 af de 54 operationer i Provider API](https://plas.redia.dk/provider/v0.6.5/)

Search API'et er katalogets læseside: otte `GET`-operationer over værker
(`work`), udgivelser (`publication`), aktører (`agent`) og forslag
(`suggestions`), plus den konfiguration der fortæller hvad provideren
understøtter.

Fladen er **læsende alene**. Der er ingen operation der skriver, og det er
grunden til at den kan stå for sig: en søgeoplevelse kan bygges én gang og
flyttes mellem bibliotekssystemer uden at røre resten af integrationen.

## Sådan integrerer du

Autentificering, base-URL og `version`-parameteren er de samme som i Provider
API'et — samme `POST /authentication/oauth2/token`, samme `Bearer`-token. Her
erklærer specifikationen desuden to scopes, `read` og `write`, hvor Provider
API'et ingen har.

Start med `GET /configuration/search`. Den siger hvad provideren faktisk
understøtter af felter og operatorer, og det er billigere at læse end at gætte.

## Forholdet til Provider API

Search API er en **profil** af Provider API: alle otte operationer findes også
dér, med samme `operationId`, metode og sti. Forskellen er ikke indholdet, men
omfanget — en leverandør kan implementere søgning alene uden at implementere
lånere, lån og beholdning.

Bygger du et produkt mod et bibliotekssystem der allerede har hele Provider
API'et, kan du kalde operationerne begge steder. Vælg denne reference når det
kun er søgning der er i spil; den er kortere at læse.

## 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/search/v0.6.5/schemas/#Version), valgfri, bruges af 7 af 8) — 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 6 af 8) — 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/search/v0.6.5/schemas/#Errors), bruges af 7 af 8) — The list of errors.
- `HttpCode401Bearer` (`Intet indhold i svaret.`, bruges af 7 af 8) — Bearer token invalid, missing, or expired.
- `HttpCode404` (`Intet indhold i svaret.`, bruges af 6 af 8) — Resource not found.
- `HttpCode401UnauthorizedOAuthLogin` (`Intet indhold i svaret.`, bruges af 0 af 8) — Unauthorized login.

## Alle grupper

- [Version](https://plas.redia.dk/search/v0.6.5/version/) — 1 operation
- [Configuration](https://plas.redia.dk/search/v0.6.5/configuration/) — 1 operation
- [Work](https://plas.redia.dk/search/v0.6.5/work/) — 2 operationer
- [Publication](https://plas.redia.dk/search/v0.6.5/publication/) — 1 operation
- [Suggestion](https://plas.redia.dk/search/v0.6.5/suggestion/) — 1 operation
- [Agent](https://plas.redia.dk/search/v0.6.5/agent/) — 2 operationer
- [Skema-indeks](https://plas.redia.dk/search/v0.6.5/schemas/) — 147 skemaer
