Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设计一个REST接口,允许更新相关项列表的排序顺序?_Rest_Sorting_Post_Many To Many - Fatal编程技术网

如何设计一个REST接口,允许更新相关项列表的排序顺序?

如何设计一个REST接口,允许更新相关项列表的排序顺序?,rest,sorting,post,many-to-many,Rest,Sorting,Post,Many To Many,假设我想开发一个客户端应用程序,管理歌曲播放列表,并在服务器上存储以下对象: 播放列表{title:unique} playlistong{PlaylistId,SongId,sortOrder} 歌曲{标题:独特} 我如何设计一个REST界面,以便可以从客户端更改播放列表的顺序,并且可以在特定位置将新歌输入到现有播放列表中。 换句话说,为了实现以下两个操作,我不知道REST接口是什么样子: 将歌曲添加到特定位置的播放列表中 更新播放列表的顺序 据我所知,我想实施的基本行动应该如下所示:

假设我想开发一个客户端应用程序,管理歌曲播放列表,并在服务器上存储以下对象:

  • 播放列表{title:unique}
  • playlistong{PlaylistId,SongId,sortOrder}
  • 歌曲{标题:独特}
我如何设计一个REST界面,以便可以从客户端更改播放列表的顺序,并且可以在特定位置将新歌输入到现有播放列表中。
换句话说,为了实现以下两个操作,我不知道REST接口是什么样子:

  • 将歌曲添加到特定位置的播放列表中
  • 更新播放列表的顺序
据我所知,我想实施的基本行动应该如下所示:

User action:           Rest Resource

Create playlist:       POST /playlist
Get Playlist:          GET /playlist/{id}
Get Playlist Songs:    GET /playlist/{id}/songs
Create song:           POST /song
Update song:           PUT /song
Get song:              GET /song/{id}

我会使用PUT更改播放列表中歌曲的顺序:

GET /playlist/{id}/songs
{
    {
        "id" : "1",
        "self" : "http://my.server/song/1",
        "name" : "The Little Old Lady From Pasadena"
    },
    {
        "id" : "2",
        "self" : "http://my.server/song/2",
        "name" : "Love Potion #9"
    }
}

PUT /playlist/{id}/songs
{
    {
        "id" : "2",
        "self" : "http://my.server/song/2",
        "name" : "Love Potion #9"
    },
    {
        "id" : "1",
        "self" : "http://my.server/song/1",
        "name" : "The Little Old Lady From Pasadena"
    }
}

谢谢你的好例子。我会尝试这样的方法,让你知道它是如何运作的。