- 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.
90 lines
2.3 KiB
YAML
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
|