我有一个调查答复数据库,我正在尝试构建一个RESTful API来公开此数据。 API应该能够返回以下信息:
在这种情况下,我对确定资源的结构有疑问。
对于调查,问题和回答,这非常简单:
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
还是我完全错了,有更好的方法吗?
答案 0 :(得分:1)
让调查成为头等舱公民,我会这样构造
/surveys
:获取所有调查/surveys/<surveyId>/questions
:获取调查问题。/surveys/<surveyId>/questions/<questionId>/answers
:获取调查问题的答案。/surveys/<surveyId>/reports
:获取调查报告。注意:如果您认为报告将被多个参数过滤,则可以考虑将其作为搜索终点。
获取/surveys/<surveyId>/reports?questionId=<questionId>