在已过滤的API Restful资源中添加子类别

时间:2017-11-14 14:40:01

标签: rest express restful-architecture api-design restful-url

我举一个例子,标题可能听起来有些混乱。

如何为类似的东西构建资源路径:

GET / courses /?language = english& active = true / units

我想过滤课程(通常不使用id),然后获取此结果的单位。你会怎么做?我想不允许在路径之间使用问号。

1 个答案:

答案 0 :(得分:1)

这将取决于您的数据库架构什么是"课程"和"单位" 。使用RESTful方式的重点是始终构建特定于资源的请求和URL。

但是,让我们说一门课程上有X个单元。以下是我要做的RESTful路径:

由于过滤课程和使用/ unit后缀的路径问题,可以通过添加另一个查询参数来完成,该参数指定请求应返回的字段。像这样:

  

GET / courses?language = english& active = true& fields = units

这将过滤课程,然后仅返回单位'关于响应的字段。正如我所说的,根据您的数据库和模型,如果单元没有存储在课程中,那么通过请求/课程路径来获取它们将是一种糟糕的做法。在这种情况下,首先请求与所需过滤器匹配的课程,然后对上下文发送另一个请求,即将课程ID作为查询参数。