Hi there!
I am working on the genres screen and realised that I can directly use MusicCatalogResourceRequest
for fetching genre with a particular ID:
func getGenres() async {
do {
let genreID = MusicItemID("17")
let request = MusicCatalogResourceRequest<Genre>(matching: \.id, equalTo: genreID)
let genreResponse = try await request.response()
print(genreResponse.items)
} catch {
print(error)
}
}
Apple Music also has an API to get the top charts genres. How would I do it without using MusicDataRequest
, or is it the only way?
My current approach:
typealias Genres = MusicItemCollection<Genre>
do {
let countryCode = try await MusicDataRequest.currentCountryCode
let genreURL = "https://api.music.apple.com/v1/catalog/\(countryCode)/genres"
guard let url = URL(string: genreURL) else {
throw URLError(.badURL)
}
let request = MusicDataRequest(urlRequest: URLRequest(url: url))
let response = try await request.response()
let genre = try JSONDecoder().decode(Genres.self, from: response.data)
print(genre)
} catch {
print(error)
}
Thank you!