问题标签 [jsonapi-resources]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
339 浏览

ruby-on-rails - 如何使用 JSONAPI::Resources 覆盖 PATCH 请求

如何拦截update操作并在 resource.rb 文件中覆盖它,而不是在控制器中。

0 投票
0 回答
63 浏览

node.js - JSON:API 匹配集合及其各自的包含

将 JSON:API 数据集合与其各自的包含相匹配的最佳实践究竟是什么。考虑下面的代码......

如果我想遍历每个场地并显示每个场地记录的所有者的完整信息怎么办。JSON:API 是否希望我只在包含数组中搜索匹配的所有者记录

是否会find()遍历包含的数组以查找具有匹配 id 作为关系对象中的集合项所有者的所有者?

我还没有找到可以解释这一点的资源,或者我可能误解了 json:api 的意义。如果有人可以解释这一点或指向与我的问题相关的资源。我会很感激。

这是我最好的解决方案。但是有更好的方法吗?似乎更多的编码只是为了找到与包含数据相关的集合

0 投票
1 回答
308 浏览

json - JSON API 资源是否可以具有作为关系简写的属性?

我有一个用于检索用户的 JSON API 端点。该资源还将用于获取用户的权限,用于在我们的前端应用程序中显示或隐藏特定元素。

资源如下所示:

权限属性保存用户拥有的权限的 slug。

如果此属性不存在,则前端应用程序必须包含资源rolesroles.permissions能够获得用户的权限。该响应如下所示:

在这种情况下,前端必须进行大量处理才能获得权限 slug。我的问题是:像上面的例子那样在用户资源上有一个速记属性是不是很糟糕permissions,或者前端应该总是通过关系来获取信息?

注意:将来我们将有一个管理界面,用户可以在其中管理用户、角色和权限。这就是角色和权限可作为单独实体使用的原因。

0 投票
0 回答
137 浏览

laravel - Laravel API 资源将模型转换为 POST 请求数据

我正在使用 Laravel 资源来转换我自己的 API 响应和我从第三方收到的响应,如本文所述

我也有一些我想转换为 JSON 以发布到第三方 API 的模型。出于所有实际目的,API 资源可以完全用于该目的,但是否推荐这样做,这样做有很多陷阱吗?

大多数情况下,我很难区分用于转换来自 API 的模型的 API 资源和用于转换作为 POST 请求传递的模型的资源。

例如

OrderResource:将我的订单转换为我想要的 API 响应

MagentoOrderResource:将我收到的 API 响应转换为我自己的模型

????:将我自己的模型转换为我想用来 POST 到第三方 API 的 JSON。

0 投票
1 回答
80 浏览

laravel - Laravel JSON 格式使用 groupBy 函数出错

我创建了一个 API 资源,它使用 groupBy 方法返回特定导师的选定主题和类别,

问题是,groupBy 方法没有像我预期的那样发送响应。

请在下面找到当前和预期的响应,

当前 API 响应

分组功能:

预期的 API 响应

请查找主题类别、主题和主题类别表的给定迁移。

迁移:主题类别

迁移:CreateSubjectsTable

迁移:CreateSubjectSubjectCategoryTable

提前感谢您的帮助。

0 投票
1 回答
573 浏览

response - 发送有关资源的额外信息的 JSON:API 标准是什么?

我有一个端点,它响应要填充到可排序表中的数据。但是有些列不是可排序的列,我想使用JSON:API规范在我的响应中传达这些列。

我没有找到很多关于这些细节的信息。

那么与 API 使用者进行此类数据通信的最佳方式是什么?

我倾向于将它们放在元数据字段中!

非常感谢

0 投票
0 回答
358 浏览

ruby-on-rails - 如何在请求测试中为 json api 资源创建请求参数?

我正在使用 Rails 6 和 JSON API Resource 创建一个 API,以便了解更多信息。我被请求测试卡住了。我现在正在做的是使用 gem json_matchers来测试我的端点的响应,但我真正的问题是构建请求的主体:发布、放置和修补。

您好,感谢您的关注。

这是交易,我开始将测试所需的所有 json 添加到我的 RSpec 文件中,但这些文件最终变得太大。所以我想,我怎样才能让它保持更瘦?

然后我将测试中的所有 json 复制到 json 文件中,并在需要时导入,例如:

我认为这是一个好主意,但后来我遇到了两个问题:我需要为每个请求测试创建一个文件以及......我将如何在运行时修改这个 json 文件的相同值?例如,我使用 FactoryBot 创建了一个对象,现在我需要在我的更新请求中使用该对象的 ID。我怎样才能做到这一点?

使用正则表达式?

好的...它有效,但我不喜欢它!我认为这可能会变成一团糟。另一种选择是将其转换为哈希,然后再次转换为 json……不,不,不,也不喜欢它。

现在我正在尝试使用 FactoryBot 和 Faker 创建一些更动态的东西。现在,使用下面的代码,我可以传递一个工厂名称并接收一个完美的 json 正文。

但后来我开始思考这种方法的挑战:

  • 发布/放置/修补关系?(has_one 或 has_many)
  • 如何为 put/path 添加 ID 字段?
  • 添加在需要时如何添加上传文件?

所以......回到我的问题:如何使用factory bot(使用 even traits)为请求准备 json 主体以及上述所有问题?

如果您有/知道这个问题的更好答案,请分享。如果没有,我会尝试为此创建一个 gem。

感谢您的时间,谢谢!

0 投票
1 回答
625 浏览

rest - JSON:API格式(Content-Type application/vnd.api+json)的资源的大量关系资源处理的正确方法

我正在构建一个 api,我正在尝试处理以下问题:

客户端使用 application/vnd.api+json 发送 Accept 标头,因此我使用JSON:API格式的资源进行回复。

例如,给出了下表:

  • 作者
  • 文章

它们具有 1:n 关系-例如,一位作者写了 100 篇文章

我的目标是:

获取/作者

返回具有定义数量的作者(资源对象)文章(关系资源对象)的作者(资源对象) - 例如他写的前 3 篇文章。

以这种格式:

我的想法:

使用查询参数,例如

tl;博士:

以 JSON:API 格式限制/分页相关资源的正确方法是什么?

0 投票
2 回答
1129 浏览

php - Laravel API 资源在控制器方法中不起作用

我的帖子模型具有以下格式:

这是我的控制器方法:

这是我的 PostResource 的外观:

所以在 show/1 响应中,我应该得到:

相反,我得到:

所以我的 PostResource 显然没有按预期工作。键“title”没有被键“name”替换。


我在这里想念什么?我知道这篇文章可能会重复,但其他问题的解决方案似乎对我不起作用。

我正在使用 Laravel 6.x。

0 投票
1 回答
286 浏览

ruby-on-rails - 如何使用 JSONAPI::Resources 按当年过滤 created_at?

我正在使用 JSONAPI::Resources 开发 Rails REST API。某些资源默认只能发送当年创建的记录,但客户端应用程序也应该可以覆盖此行为以获取较旧的记录。

我已经尝试通过在资源上创建此自定义过滤器来实现此目的:

但是使用这个自定义过滤器,客户端应用程序必须始终filter[current_year]=true在每个请求上发送查询字符串,我不希望这种情况发生。

简而言之,API 应该始终按当年过滤记录,并且客户端应用程序应该能够发送过滤器以获取较旧的记录。

我怎样才能做到这一点?