首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONAPI端点URL应该与资源的“类型”完全匹配

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

Stack Overflow用户
提问于 2017-06-16 10:21:48
回答 1查看 115关注 0票数 0

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

按照资源类型解析端点是规范/建议的一部分吗?我记得我读过一些评论,解释说没有一个实际的type命名约定。

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

代码语言:javascript
复制
/registration/admin
/registration/customer
etc.

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

  • 如果有几个端点返回相同的资源type,这是一个错误的设计吗?
  • 我是否应该修改我的代码以引入像registration/user这样的额外类型?
  • 或者我应该向库提交一个补丁,以便它接受自定义端点URL?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-17 08:09:52

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

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

为了解决你的难题:

  1. 我不明白您所说的‘返回资源类型’是指响应中返回的表示,还是后端函数如何创建和返回类的实例?
  2. 我不会为所有类型的用户添加额外的超级类型。每种类型都有一个集合,或者所有类型都有一个类型。
  3. 如果在考虑了以上所有内容并选择了您想要的URI之后,您的软件无法处理您所选择的结构,那么有三种选择: i)选择更有能力的软件 ( ii)在传入的URI和交给您的软件的URI之间创建一个映射。Apache mod_rewrite可以为您做到这一点。 如你所建议的,让你已经使用的软件更有能力

选择最简单的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44586875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档