代码之家  ›  专栏  ›  技术社区  ›  rufus1530

在RESTful API中表示资源

  •  1
  • rufus1530  · 技术社区  · 7 年前

    我有一个调查响应的数据库,我正试图构建一个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 回复  |  直到 7 年前
        1
  •  1
  •   dkulkarni    7 年前

    作为一等公民,我会这样组织调查

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

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

    得到 /surveys/<surveyId>/reports?questionId=<questionId>