2013-02-03 66 views
2

因此,我正在開發一個應用程序,該應用程序具有使用Echo Nest API生成與用戶音樂目錄中的相似的100個左右藝術家列表的功能。然後,用戶可以提供某一年,並根據相似的藝術家,該應用程序將返回該年發佈的相冊列表。使用API​​按年篩選相冊

唯一的問題是,我不知道如何根據年份過濾相冊。 Echo Nest API對於專輯並沒有多大作用。 Discogs和Last.fm API與相冊配合工作,Discogs API包含有關相冊發佈日期的數據,但無法按發佈日期過濾最初的查詢。例如,如果我擁有藝術家Fleet Foxes,並且我想通過2011年發佈的專輯進行過濾,則無法通過Fleet Foxes限制在2011年發佈日期搜索專輯。

我可以選擇的唯一選項真正看到在這一點上迭代每個藝術家擁有的專輯,只添加符合我的規格的專輯。然而,在API和我的服務器上這顯然非常沉重,特別是考慮到100位相似藝術家名單中的許多藝術家將沒有符合我的標準的專輯,並且許多藝術家在100張專輯的範圍內你考慮單曲,混音等。

有沒有人看到這樣做的更好方法?

+0

這與Java或Python有什麼關係? – abarnert

+0

對不起,正處於規劃階段,並願意使用這兩種語言之一,所以我想我會包括他們。我會帶他們出去。 – user1427661

回答

1

如果一個API真的沒有任何方法可以逐年過濾,那麼是的,當然,您必須將所有的發佈版本都下載並在事後進行過濾。

如果您認爲這是您的代碼和/或其服務器的負擔,則應提交功能請求以添加篩選。

但是,你應該首先確保他們真的不提供這樣的事情。大多數REST API將「獲取」和「搜索」分開。例如,http://api.example.com/artists/12345/releases可能沒有任何方法來過濾它,但可能存在http://api.example.com/search?type=releases&artist=12345&year=2011

沒有尋找到所有詳細的API,Discogs' "Run a search query"文檔的快速檢查表明,你可以在搜索中包含一個year標準(儘管看起來也許你不能真正的藝術家ID搜索,只需按藝術家姓名?)。

+1

你是完全正確的。您可以使用HTTP請求按年搜索,而不是使用搜索。不幸的是,我正在使用Python,並且他們的客戶端庫沒有提供這個。但是,對Search類的快速調整以及他們使用請求庫進行的調用可能會糾正此問題。如果它有效,我會用解決方案編輯我的帖子。 – user1427661

+0

我相信Discogs和last.fm都有開源的客戶端庫,至少Python的是非常簡單的純Python Web服務包裝器。所以,如果缺少可以輕鬆添加的功能,我會提交一個錯誤並提交補丁。 – abarnert