- Update Search All Libraries.yml with expanded documentation - Add Fuzzy Author Filter.yml (author_filter=asimov example) - Add Fuzzy Genre Filter.yml (genre_filter=scifi example) - Add Combined Search and Filters.yml (q=foundation&author_filter=asimov example) - Add Exact Match With Quotes.yml (q="Foundation and Empire" example) - Add Field Values Search - Authors.yml (autocomplete dropdown example) - Add Field Values Search - Genres.yml (autocomplete dropdown example) - Add Field Values Search - Series.yml (autocomplete dropdown example) - Add Field Values Search - Languages.yml (autocomplete dropdown example) - Remove deprecated Filter Media Items.yml scenario All files include request config, params, examples, expected responses, and success criteria for API interaction during development.
93 lines
2.3 KiB
YAML
93 lines
2.3 KiB
YAML
info:
|
|
name: Field Values Search - Genres
|
|
type: http
|
|
seq: 1
|
|
|
|
http:
|
|
method: GET
|
|
url: "{{base_url}}/api/media-items/search"
|
|
params:
|
|
- name: library_id
|
|
value: "{{library_id}}"
|
|
type: query
|
|
disabled: false
|
|
- name: genre
|
|
value: "sci"
|
|
type: query
|
|
disabled: false
|
|
- name: limit
|
|
value: "50"
|
|
type: query
|
|
disabled: false
|
|
auth: inherit
|
|
|
|
settings:
|
|
encodeUrl: true
|
|
timeout: 0
|
|
followRedirects: true
|
|
maxRedirects: 5
|
|
|
|
docs: |-
|
|
## Field Values Search - Genres
|
|
|
|
Fetches distinct genre values for autocomplete dropdowns with counts and similarity scores.
|
|
|
|
**Method:** GET
|
|
|
|
**Endpoint:** /api/media-items/search
|
|
|
|
**Authentication:** Required (Bearer token)
|
|
|
|
**Query Parameters:**
|
|
- `library_id` (string, required): Library UUID to search within
|
|
- `genre` (string, required): Genre name to search for (fuzzy match)
|
|
- `limit` (integer, optional): Maximum results to return (default: 50)
|
|
|
|
**How It Works:**
|
|
- Returns distinct genre names from the library
|
|
- Fuzzy matches the search query against genre names
|
|
- Includes count of books per genre
|
|
- Includes similarity score (0-1, higher = better match)
|
|
- Sorted by similarity score, then by count
|
|
|
|
**Use Case:**
|
|
- Populate autocomplete dropdown when user types in genre filter field
|
|
- Show user available genres with book counts
|
|
- Help users discover similar genre names
|
|
|
|
**Response:** HTTP 200 (OK)
|
|
```json
|
|
{
|
|
"results": [
|
|
{
|
|
"value": "Sci-Fi",
|
|
"count": 234,
|
|
"score": 0.85
|
|
},
|
|
{
|
|
"value": "Science Fiction",
|
|
"count": 156,
|
|
"score": 0.82
|
|
}
|
|
],
|
|
"total": 2
|
|
}
|
|
```
|
|
|
|
**Examples:**
|
|
- `genre=sci` → Returns "Sci-Fi" (234 books), "Science Fiction" (156 books)
|
|
- `genre=fant` → Returns "Fantasy" (345 books), "High Fantasy" (89 books)
|
|
- `genre=mystery` → Returns "Mystery" (123 books), "Mystery/Thriller" (45 books)
|
|
|
|
**Frontend Integration:**
|
|
- Call this endpoint when user types ≥2 characters in genre field
|
|
- Display results in `<datalist>` or custom dropdown
|
|
- Show: "Genre Name (count)" format
|
|
- Allow user to select from suggestions
|
|
|
|
**Success Criteria:**
|
|
- Status: 200
|
|
- Returns array of genre values with counts
|
|
- Results sorted by relevance (similarity score)
|
|
- Only returns genres matching the fuzzy search
|