Files
bookhoard/bruno/media-items/Field Values Search - Genres.yml
T
john-okeefe fc617c3e46 docs: update Bruno collection with unified search endpoints
- 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.
2026-03-23 22:38:28 -04:00

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