【问题标题】:How do I design a REST interface that allows for updating the sort order of a list of related items?如何设计允许更新相关项目列表的排序顺序的 REST 接口?
【发布时间】:2014-03-13 21:53:47
【问题描述】:

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

  • 播放列表 { 标题:唯一 }
  • PlaylistSong { 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}

【问题讨论】:

    标签: rest sorting post many-to-many


    【解决方案1】:

    我会使用 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"
        }
    }
    

    【讨论】:

    • 感谢你的好例子。我会尝试这样的事情,然后告诉你结果如何。
    猜你喜欢
    • 2011-01-18
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多