2011-11-07 86 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