具有关联的RESTful API设计

ben*_*nto 5 javascript api rest backbone.js

我正在尝试为两个资源构建一个API,一个用户,另一个用电影.两种资源都有关联 - 用户将拥有多个电影,而电影将拥有多个用户.据推测,我设计的API类似于:

/api/users/
/api/users/:id
/api/users/:id/movies

/api/movies/
/api/movies/:id
/api/movies/:id/users
Run Code Online (Sandbox Code Playgroud)

但问题在于:我还在客户端使用Backbone.js来获取API数据.如果我在创建一个集合

/api/users/:id/movies
Run Code Online (Sandbox Code Playgroud)

然后这将适用于GET请求,但POST和PUT请求似乎将被指向:

/api/users/:id/movies/:id
Run Code Online (Sandbox Code Playgroud)

但是,看起来如果发布的话会更好

/api/movies/:id
Run Code Online (Sandbox Code Playgroud)

代替.那是对的吗?人们如何处理RestFul协会?

lau*_*ent 1

不确定“POST 和 PUT 请求似乎会针对......”是什么意思。Backbone.js 是否会自动向 URL 添加参数?如果是这样,您应该考虑对其进行配置,使其不会执行此操作,因为它无法与 REST API 一起使用。REST API 提供的链接应该是完整的链接,无需添加或删除任何内容。

最后,如果您想将电影与用户关联。您可以将电影(或只是其 ID)发布到:

/api/users/:id/movies
Run Code Online (Sandbox Code Playgroud)