JSONAPI 端点 URL 应该与资源的“类型”完全匹配

JSONAPI should the endpoint URL match exactly the `type` of a resource

我正在为我的网站构建一个 jsonapi,在查看各种前端组件时我遇到了 https://github.com/dixieio/redux-json-api/tree/master/docs 这似乎直接从资源类型

解析端点 URL

根据资源类型精确解析端点是 spec/recommendations 的一部分?我记得读过解释没有实际 type 命名约定的评论。

我的 API 有几个端点用于注册不同类型的用户

/registration/admin
/registration/customer
etc.

这些端点关联了不同的业务逻辑,但它们都是 return 一个 user 类型的对象。

我无法具体说明您正在使用的框架,但您可以完全自由地选择您的 HTTP 资源代表什么。例如,如果客户可以是公司客户并且具有关联的发票和销售历史记录,但管理员永远只是个人并且无法进行交易,那么您可以充分考虑将资源分开。

您应该尽量避免的一件事是允许软件的限制决定您的 URI 结构。如果我正在创建此 API,并确定客户和管理员是不同类型的对象,我将在 /admins/new 和 /customers/new 处创建注册表单资源,这将使 POST 向 /admins 和 /customers 的集合资源请求。我根本不会有 /registration*。

解决您的个人问题:

  1. 我不明白你所说的“返回资源类型”是什么意思——你是在谈论响应中返回的表示,还是后端函数如何创建和返回实例class?

  2. 我不会为所有类型的用户添加额外的超类型。要么每种类型一个集合,要么所有类型一个。

  3. 如果在考虑以上所有因素并选择了您想要的 URI 后,您的软件无法处理您选择的结构,则有以下三种选择:
    i) 选择功能更强大的软件
    ii) 在传入的 URI 和传递给您的软件的 URI 之间创建一个映射。 Apache mod_rewrite 可以为您做到这一点
    iii) 按照您的建议,使您已经在使用的软件功能更强大

选择最简单的选项。