2011-11-07 81 views
0

我已經決定要爲我的音樂網站編寫API。我真正想要的是在創建API時實現REST。如果我想要功能說,通過API播放下一首歌曲,我將如何去做這件事?通過API執行用戶操作

就我構建的URL而言,它會是類似於API/{ID}/NextSong,API/{ID}/?NextSongAPI/{ID}?NextSong。還是會有點不同呢?

就代碼方面而言,我打算讓PHP服務運行Web服務。我需要某種認證步驟。使用API​​對用戶進行身份驗證的最佳方式是什麼? (我想,這可能是一個非常好的在線資源,或者爲此。)

最後,音樂播放器是HTML5和Javascript/jQuery。使用網絡服務讓玩家真正轉到下一首歌曲的最佳方式是什麼?我有一個nextSong()javascript函數,但我不確定如何訪問它。我唯一能想到的就是某種投票,不管是AJAX長時間投票還是隻是定時投票。有沒有其他更好,更有效的方法呢?

感謝您的幫助,我真正需要的是朝着正確的方向前進,到目前爲止我所知道的很多是由於我在Microsoft SharePoint 2010中使用Microsoft的listdata.svc RESTful webservice的經驗。其餘知識限於this article about REST APIs in PHP

回答

1

如果您的網址中包含「NextSong」,那意味着您必須將每個用戶的狀態保存在服務器上。如果我有一個玩家並且使用AJAX來處理REST API,那麼我會讓服務器變成「愚蠢的僕人」,它可以做我告訴它做的所有事情,並讓邏輯處於客戶端。

例如,我將有一個獲取JSON或XML格式播放列表的服務。解析這在客戶端上。當您聽該播放列表中的歌曲時,您知道播放列表中的哪個位置,以及用戶或播放器何時請求播放下一首歌曲時,音樂播放器將在播放列表中查找(保存在對象數組中)可能是鏈接列表,上一首歌曲和下一首歌曲?),請撥打服務開始播放歌曲ID #####。例如API/{ID} /播放/ {SongID}或API/{ID} /歌曲/ {歌曲ID}。

問候

(編輯固定錯字)

+0

只是提供一個不同的角度來看,當我構建RESTful系統,它是一個極其愚蠢的客戶端,這是智能服務器。服務器提供包含鏈接的表示。客戶端以某種方式簡單地向用戶顯示這些鏈接,當用戶激活鏈接時,客戶端會調用服務器。客戶不知道它在做什麼。 –

+0

讓我試着從兩個角度理解這一點: Tobias:你說讓Web服務非常透明,所以它幾乎只是作爲一個簡單的數據源,所有的動作和邏輯都是在客戶端處理的? @DarrelMiller:您認爲使Web服務非常靈活,所有的操作和邏輯都是在服務器端執行的,而客戶端幾乎只是啓動一種工作流? 兩者似乎都有非常明顯的優點和缺點,我不得不看一下。 你們中的任何一個人都知道如何真正讓玩家播放下一首歌曲嗎? – Vap0r

+0

Vap0r of course我知道如何讓它播放下一首歌,但在你的情況下,我不確定你有什麼可用的。你是否想要改變從服務器上讀取哪個文件的音樂流,或者當你改變音軌時,播放器是否開始從「新來源」讀取?如果你要告訴服務器播放下一首歌曲,你的服務器是否知道下一首歌曲還是你需要新的邏輯? – Tobias