Package-level declarations

Types

Link copied to clipboard
@Serializable(with = BestSerializer::class)
data class Best(val type: QueryResponseType, val result: Any)
Link copied to clipboard
object BestSerializer : KSerializer<Best>

Сериализует лучший JSON-результат поиска, выбирая тип данных по полю type. Другие форматы сериализации не поддерживаются.

Link copied to clipboard
Link copied to clipboard
@Serializable
enum QueryType : Enum<QueryType>
Link copied to clipboard
@Serializable
data class Search(val searchRequestId: String, val query: String, val misspellResult: String? = null, val misspellOriginal: String? = null, val noCorrect: Boolean? = null, val misspellCorrected: Boolean? = null, val best: Best? = null, val artists: SearchResult<Artist>? = null, val albums: SearchResult<AlbumData>? = null, val playlist: SearchResult<PlaylistData>? = null, val tracks: SearchResult<TrackData>? = null, val videos: SearchResult<Video>? = null, val users: SearchResult<User>? = null, val podcasts: SearchResult<AlbumData>? = null, val podcastsEpisodes: SearchResult<TrackData>? = null, val clips: SearchResult<Clip>? = null)

Результат поиска.

Link copied to clipboard
@Serializable
data class SearchRequest(val query: String, val noCorrect: Boolean = false, val type: QueryType = QueryType.All, val page: Int = 0, val playlistInBest: Boolean? = true)

Запрос для поиска

Link copied to clipboard
Link copied to clipboard
@Serializable
data class SearchResult<T>(val total: Int, val perPage: Int, val order: Int, val results: List<T>)

Результат поиска различный от выбранного запроса. Этот dataclass упрощает обрабатывать ответ в Search

Link copied to clipboard
@Serializable
data class Suggestions(val best: Best? = null, val suggestions: List<String>)

Подсказки для ответа