Files
bookhoard/bruno/media-items/search/Field Values Search - Authors.yml
T
john-okeefe f28dca1334 refactor: reorganize Bruno API collection into subdirectories
- Move search-related requests into bruno/media-items/search/ subdirectory
- Rename Fuzzy Genre Filter.yml to Fuzzy Tags Filter.yml
- Keep scenario-based requests in bruno/media-items/scenarios/
- Improve collection organization and discoverability

This reorganization makes the Bruno API collection more organized by
grouping search endpoints together and updating genre filter to tags filter.
2026-03-25 20:40:25 -04:00

90 lines
2.3 KiB
YAML

info:
name: Field Values Search - Authors
type: http
seq: 6
http:
method: GET
url: "{{base_url}}/api/media-items/search?library_id={{library_id}}&author=asimov&limit=50"
params:
- name: library_id
value: "{{library_id}}"
type: query
- name: author
value: asimov
type: query
- name: limit
value: "50"
type: query
auth: inherit
settings:
encodeUrl: true
timeout: 0
followRedirects: true
maxRedirects: 5
docs: |-
## Field Values Search - Authors
Fetches distinct author 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
- `author` (string, required): Author name to search for (fuzzy match)
- `limit` (integer, optional): Maximum results to return (default: 50)
**How It Works:**
- Returns distinct author names from the library
- Fuzzy matches the search query against author names
- Includes count of books per author
- Includes similarity score (0-1, higher = better match)
- Sorted by similarity score, then by count
**Use Case:**
- Populate autocomplete dropdown when user types in author filter field
- Show user available authors with book counts
- Help users discover similar author names
**Response:** HTTP 200 (OK)
```json
{
"results": [
{
"value": "Asimov, Isaac",
"count": 47,
"score": 0.8
},
{
"value": "Asimov, Isaac & Robert Silverberg",
"count": 2,
"score": 0.75
}
],
"total": 2
}
```
**Examples:**
- `author=asimov` → Returns "Asimov, Isaac" (47 books), "Asimov, Isaac & Robert Silverberg" (2 books)
- `author=rowling` → Returns "Rowling, J.K." (10 books)
- `author=tolkien` → Returns "Tolkien, J.R.R." (15 books)
**Frontend Integration:**
- Call this endpoint when user types ≥2 characters in author field
- Display results in `<datalist>` or custom dropdown
- Show: "Author Name (count)" format
- Allow user to select from suggestions
**Success Criteria:**
- Status: 200
- Returns array of author values with counts
- Results sorted by relevance (similarity score)
- Only returns authors matching the fuzzy search