0

我们使用 IRI 来识别 API 中的资源。当我们想用资源过滤另一个资源时,我们必须使用 IRI 的 ID 部分。这正常吗?

例子:

GET /api/authors
[{
  @id: "/api/authors/45gfd654d",
  name: "John Doe",
}]

GET /api/books?authors=[45gfd654d]

使用起来似乎很复杂,因为我们必须拆分 IRI 才能在其他 API 调用中使用最后一部分。我的问题是:这种情况下的指导方针是什么?资源必须有一个 id(只有最后一个 IRI 部分)或者我们允许使用 IRI 过滤?

感谢

4

1 回答 1

0

确实很痛苦!我们选择尝试在查询参数中实际使用(相对)uris。

在许多情况下,我们还将创建专门的端点,例如/api/authors/[id]/books. 尽管最终相似,但我们的客户从不构造或解构 url。网址被发现,因此客户将在作者资源上找到“书籍列表”链接。

于 2020-12-23T16:46:11.883 回答