REST API路由结构

时间:2013-01-10 17:53:12

标签: api node.js rest

在确定哪条路线更加RESTful时遇到一些麻烦。为了快速推广,我正在为抽奖应用程序构建一个API。最高级别是客户,接下来是抽奖,以下是提交。

我对于创建新的抽奖活动和提交的最佳路线感到困惑。

选项1

POST /sweepstakes [passing along client_id as a parameter]

选项2

POST /clients/:client_id/sweepstakes [using client id in route to create]

这是我所有路线的GIST。希望有人可以帮助我。 https://gist.github.com/4504221

2 个答案:

答案 0 :(得分:1)

我不打算让REST URI代表层次结构。

/client/:client_id should return a list of the client's sweepstakes URIs (among other data.)
/sweepstakes/:sweepstakes_id will return a list of all submissions URIs for that sweepstakes id (among other data.)
/submission/:submission_id is exactly what you think.

这很简单,但我想不出让URI变得更复杂的原因。如果我错过了什么,请告诉我。

编辑:哦,你指的是创建一个资源:

我仍然使用上面的URI。

POST /client/
POST /sweepstakes/
POST /submission/

传递请求正文中所需的数据并在响应中返回id。使用PUT更新:

PUT /client/:client_id

答案 1 :(得分:0)

答案几乎与您将创建的资源的URI相关:

  • POST /创建/:id
  • POST /sweepstakes/创建/sweepstakes/:id
  • POST /clients/:id_a/sweepstakes/创建/clients/:id_a/sweepstakes/:id_b