[jsonapi] Support /api/search?type=genre like type=composers is supported

Ref. #1735
This commit is contained in:
ejurgensen
2024-03-30 22:18:18 +01:00
parent 39f5df8ade
commit 3e7e03b4c1
2 changed files with 78 additions and 8 deletions

View File

@@ -2037,12 +2037,12 @@ curl -X PUT "http://localhost:3689/api/library/backup"
| Method | Endpoint | Description |
| --------- | ----------------------------------------------------------- | ------------------------------------ |
| GET | [/api/search](#search-by-search-term) | Search for playlists, artists, albums, tracks, composers by a simple search term |
| GET | [/api/search](#search-by-search-term) | Search for playlists, artists, albums, tracks, genres, composers by a simple search term |
| GET | [/api/search](#search-by-query-language) | Search by complex query expression |
### Search by search term
Search for playlists, artists, albums, tracks, composers that include the given query in their title (case insensitive matching).
Search for playlists, artists, albums, tracks, genres, composers that include the given query in their title (case insensitive matching).
**Endpoint**
@@ -2055,7 +2055,7 @@ GET /api/search
| Parameter | Value |
| --------------- | ----------------------------------------------------------- |
| query | The search keyword |
| type | Comma separated list of the result types (`playlist`, `artist`, `album`, `track`, `composers`) |
| type | Comma separated list of the result types (`playlist`, `artist`, `album`, `track`, `genres`, `composers`) |
| media_kind | *(Optional)* Filter results by media kind (`music`, `movie`, `podcast`, `audiobook`, `musicvideo`, `tvshow`). Filter only applies to artist, album and track result types. |
| offset | *(Optional)* Offset of the first item to return for each type |
| limit | *(Optional)* Maximum number of items to return for each type |
@@ -2064,11 +2064,12 @@ GET /api/search
| Key | Type | Value |
| --------------- | -------- | ----------------------------------------- |
| tracks | object | [`paging`](#paging-object) object containing [`track`](#track-object) objects that matches the `query` |
| artists | object | [`paging`](#paging-object) object containing [`artist`](#artist-object) objects that matches the `query` |
| albums | object | [`paging`](#paging-object) object containing [`album`](#album-object) objects that matches the `query` |
| playlists | object | [`paging`](#paging-object) object containing [`playlist`](#playlist-object) objects that matches the `query` |
| composers | object | [`paging`](#paging-object) object containing `composers` objects that matches the `query` |
| tracks | object | [`paging`](#paging-object) object containing [`track`](#track-object) objects that match the `query` |
| artists | object | [`paging`](#paging-object) object containing [`artist`](#artist-object) objects that match the `query` |
| albums | object | [`paging`](#paging-object) object containing [`album`](#album-object) objects that match the `query` |
| playlists | object | [`paging`](#paging-object) object containing [`playlist`](#playlist-object) objects that match the `query` |
| genres | object | [`paging`](#paging-object) object containing [`browse-info`](#browse-info-object) objects that match the `query` |
| composers | object | [`paging`](#paging-object) object containing [`browse-info`](#browse-info-object) objects that match the `query` |
**Example**