0

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

通过资源类型精确解析端点是规范/建议的一部分吗?我记得阅读评论解释没有实际的type命名约定。

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

/registration/admin
/registration/customer
etc.

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

  • 让多个端点返回相同的资源是一个糟糕的设计type吗?

  • 我应该更改我的代码以引入其他类型registration/user吗?

  • 或者我应该向库提交补丁,以便它接受自定义端点 URL?

4

1 回答 1

0

我无法具体说明您正在使用的框架,但您可以完全自由地选择您的 HTTP 资源所代表的内容。例如,如果客户可能是公司并且有相关的发票和销售历史,但管理员只是个人并且不能进行交易,那么您可以为保持资源分开提供强有力的理由。

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

要解决您的个人问题:

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

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

  3. 如果在考虑了以上所有因素并选择了所需的 URI 之后,您的软件无法处理您选择的结构,则有三个选项:
    i)选择功能更强大的软件
    ii)在传入 URI 和交给您的软件的 URI 之间创建映射. Apache mod_rewrite 可以为您执行此操作
    iii) 按照您的建议,使您已经在使用的软件功能更强大

选择最简单的选项。

于 2017-06-17T08:09:52.193 回答