# Suggestion

Provider API v0.6.7 · 1 operation
Kilde: https://plasapi.com/da/provider/v0.6.7/suggestion/

Search suggestions shown while a patron is still typing. Given the first few letters, the provider returns likely queries, works, contributors or subjects to complete the search, so the patron reaches a good result faster. Meant to be called on every keystroke.

## Get Suggestions

`GET` `/suggestions` · `GetSuggestions`

Get search suggestions for `/work/search`.

The `query` parameter should be the same as for `/work/search`.  
and the `filter` parameter should be the same as for `/work/search`, but some search filter may not be working in suggestions, see which ones by calling configuration. 

The response will be an array of suggestions of the type specified in the `types` parameter, and will be ordered by relevance.

Filters:

These only affects the suggestions of the type `work`:
- plas.audience.literal
- plas.audience.ageRange 
- plas.audience.ageGroup
- plas.mediaTypes
- plas.language
- plas.subjects
- plas.genres
- plas.forms
- plas.agent


### Eksempel på kald

**cURL**

```bash
curl -X GET "$PLAS_BASE_URL/suggestions?version=0.6.7" \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN"
```

**JavaScript**

```javascript
const response = await fetch(`${process.env.PLAS_BASE_URL}/suggestions?version=0.6.7`, {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
});
const data = await response.json();
```

**Python**

```python
import os
import requests

response = requests.get(
    f"{os.environ['PLAS_BASE_URL']}/suggestions",
    params={
        "version": "0.6.7",
    },
    headers={
        "Accept": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
)
data = response.json()
```

Værten og tokenet er miljøvariabler: `PLAS_BASE_URL` providerens adresse · `PLAS_TOKEN` et access token.

### Parametre

- `query` (i `query`, `string`, valgfri) — The suggestion (search) query.
- `size` (i `query`, `integer`, valgfri) — Suggestion size (default 10).
- `types` (i `query`, [`array of SuggestionParameterTypeEnum`](https://plasapi.com/da/provider/v0.6.7/schemas/#SuggestionParameterTypeEnum), valgfri) — List of suggestion types allowed in result.
- `filter` (i `query`, `object`, valgfri) — The suggestion (search) filter.

The possible keys in this map are the filters defined in the `/configuration(/search)` endpoint (field: (search->)suggestions->>available) and are a list of strings of the `SearchFilterType` type.


Fælles for operationerne: `ui_language`, `version`. [Se den fælles kontrakt på versionssiden.](https://plasapi.com/da/provider/v0.6.7/)

### Svar

#### `200` Success

`GetSuggestionsResponseBody`

Eksempel (Genereret ud fra skemaet):

```json
{
  "suggestions": [
    {
      "query": "undset",
      "type": "query"
    }
  ]
}
```

#### `400` The list of errors.

`Errors`

Fælles svar, defineret én gang for hele API’et. [Se den fælles kontrakt på versionssiden.](https://plasapi.com/da/provider/v0.6.7/)

Eksempel (Genereret ud fra skemaet):

```json
{
  "errors": [
    {
      "code": 200103,
      "info": "200103: invalid/unsupported query parameter value"
    }
  ]
}
```

#### `401` Bearer token invalid, missing, or expired.

Intet indhold i svaret.

Fælles svar, defineret én gang for hele API’et. [Se den fælles kontrakt på versionssiden.](https://plasapi.com/da/provider/v0.6.7/)

#### `404` Resource not found.

Intet indhold i svaret.

Fælles svar, defineret én gang for hele API’et. [Se den fælles kontrakt på versionssiden.](https://plasapi.com/da/provider/v0.6.7/)
