在RESTful API中表示资源

时间:2018-08-07 12:58:53

标签: rest

我有一个调查答复数据库,我正在尝试构建一个RESTful API来公开此数据。 API应该能够返回以下信息:

  1. 可用调查
  2. 问题
  3. 答案
  4. 报告(每个调查问题每种答案的回答总和)

在这种情况下,我对确定资源的结构有疑问。

对于调查,问题和回答,这非常简单:

GET /surveys
GET /questions // filter by surveyId possible
GET /responses // filter by questionId and SurveyId possible

将报告适合此结构的最佳方法是什么?我是否要设置一条单独的路线,例如:

GET /reports/responses-by-question?surveyId=1

还是在响应路径中将其添加为下一级?例如

GET /responses/by-question?surveyId=1

还是我完全错了,有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

让调查成为头等舱公民,我会这样构造

  1. 获取/surveys:获取所有调查
  2. 获取/surveys/<surveyId>/questions:获取调查问题。
  3. 获取/surveys/<surveyId>/questions/<questionId>/answers:获取调查问题的答案。
  4. 获取/surveys/<surveyId>/reports:获取调查报告。

注意:如果您认为报告将被多个参数过滤,则可以考虑将其作为搜索终点。

获取/surveys/<surveyId>/reports?questionId=<questionId>