我正在为我的网站构建一个jsonapi,在查看我遇到的各种前端组件时 https://github.com/dixieio/redux-json-api/tree/master/docs 这似乎直接从资源类型
解析端点URL通过资源类型使端点解析完全符合规范/建议的一部分?我记得读过评论,说明没有实际的type
命名约定。
我的API有几个端点用于注册不同类型的用户
/registration/admin
/registration/customer
etc.
这些端点具有不同的业务逻辑关联,但它们都返回user
类型对象。
这是一个糟糕的设计让几个端点返回相同的资源type
?
我是否应该在代码中进行更改以引入其他类型的registration/user
?
或者我应该向库提交补丁以使其接受自定义端点URL吗?
答案 0 :(得分:0)
我无法专门解决您正在使用的框架,但您可以完全自由地选择HTTP资源所代表的内容。例如,如果客户可以是公司的,并且具有关联的发票和销售历史记录,但管理员只是个人而且无法进行交易,那么您可以为保持资源分离提供强有力的理由。
您应该避免的一件事是允许软件限制决定您的URI结构。如果我正在创建这个API,并且已经确定客户和管理员是不同类型的对象,我会在/ admins / new和/ customers / new中注册表单资源,这将对/ admins的集合资源发出POST请求和/客户。我根本没有/注册*。
解决您的个人问题:
我不明白“返回资源类型”是什么意思 - 您是在谈论响应中返回的表示,还是后端函数如何创建和返回类的实例?
我不会为所有类型的用户添加额外的超类型。每种类型都有一个集合,或者所有类型都有一种类型。
如果在考虑了上述所有内容并选择了您想要的URI后,您的软件无法处理您选择的结构,有三种选择:
i)选择功能更强大的软件
ii)在传入的URI和传递给您的软件的URI之间创建映射。 Apache mod_rewrite可以为你做这个
iii)如您所知,使您已经使用的软件更有能力
选择最简单的选项。