问题标签 [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 投票
0 回答
48 浏览

ruby-on-rails - 使用 jsonapi-resources 优化垃圾收集

我目前在我的 Rails 5 应用程序中使用 jsonapi-resources gem,对此我很满意。为了优化 RAM 消耗,我想用.all以下内容替换控制器中的调用:

但是,这样做时,似乎通过 gem 提供的过滤器不再起作用。因此,虽然旧版本实际上会调整此 url 的结果:

新版本(带有 的版本.find_each)会忽略这些过滤器。

如何再次应用这些过滤器?

0 投票
1 回答
199 浏览

ruby-on-rails - 使用 JasonApi Resources Gem 删除链接

我有一个包含以下类的简单模型:

和资源:

当我对响应进行GET请求时/countries/1?include=country_categories.category,总是会带来很多链接。例如

所有这些links都不会被使用。有没有办法可以删除它们?谢谢 :)

0 投票
1 回答
357 浏览

ruby-on-rails - jsonapi-resources——覆盖字段

1我的资源中有一个字段,如果它nil在模型中,我想设置它。我有以下代码,但资源仍在产生minimum_approvers: nil

关于发生了什么的任何想法?

0 投票
1 回答
116 浏览

ruby - Ruby jsonapi-resources 链接(相对/绝对)

我对 Ruby 非常陌生,所以如果这个问题看起来非常简单或含糊,我提前道歉。

使用时在哪里jsonapi-resources指定 JSON API 链接的基本路径?我希望从指定完整 URL 更改root-relative为这些资源的路径。

我找到routes.rb

0 投票
1 回答
120 浏览

rest - 已经执行或不需要的操作的 API 响应应该是什么

当我的 JsonAPI 被要求执行一些已经完成或没有意义的操作时,我应该返回什么响应(代码 + 内容)?

示例:假设我想请求发表文章。文章草稿通过特定端点更新(此处不相关),并且有特定端点用于发布(我们感兴趣的响应)

4种不同的场景,我需要弄清楚每次发送什么类型的响应:

  1. 从未请求发布,并且该文章具有所有发布强制信息,请求发布是有意义的,因此我将返回一个 202 接受的响应,其中包含“发布请求在”属性的文章资源

  2. 一个成功的发布发布请求已经发送/确认,并且没有人有时间在这之间进行审查。我应该返回什么?

  3. 以前的发布请求已被某人审核并接受(文章现已发布)。API再次接收到这篇文章的发布请求,已经发布了,没有意义,我应该返回什么?

  4. 文章未填写所有必填信息,有人提出发布请求。我必须通知用户他的请求由于错误而没有被批准。我在想这个我可以返回验证错误列表。听起来很公平 ?

0 投票
1 回答
78 浏览

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

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

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

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

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

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

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

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

0 投票
1 回答
892 浏览

rails-activerecord - 如何使用响应类型不匹配且不允许我创建记录的 jsonapi-resources 修复 API?

每次我想创建一个新项目时,我的 API 中的不匹配类型都会出现问题。

它发生在两个地方:

  1. 当我尝试发布新项目时

POST http://localhost:8060/datasets/

回复

  1. 我可以在访问项目的关系时看到它发生。例如,这是一个 GET 响应:

获取http://localhost:8060/datasets/

您可以看到datacentre(foreign_key) 属性如何呈现为Model Datacenter的对象类型。如果我尝试访问与该模型的关系,http://localhost:8060/datasets/5/datacentre我会得到以下信息:

我认为问题在于 API 期望的对象类型错误。当它应该期待DatacentreResource时,它​​期待Datacentre

我的设置如下:

  • 我有一个旧版数据库,它不遵循 ActiveRecord 命名表和外键的约定。
  • 表是单数的,foreign_keys 没有 _id 后缀。
  • 我遇到问题的表/模型具有 one_to_many 关系。
  • 关系是datacentrehas_many datasets
  • 我正在使用jsonapi-resources和 rails 5 api-only

数据中心模型

数据集模型

数据中心资源

数据集资源

到目前为止,我通过修改数据集资源中的方法datacentre及其别名解决了第一个问题(即访问关系)datacentre_id

但这并不能解决 POST 问题。

0 投票
0 回答
38 浏览

ruby-on-rails - jsonapi-resources 跨版本关系

如何在不复制相关资源和控制器的情况下添加新版本的资源?

假设我有一个由以下路由描述的 API:

我想在ContactResource不复制PhoneNumberResourceand的情况下添加我的新版本PhoneNumberController,有没有办法做类似的事情:

我正在从事一个具有许多相关资源的项目,我不想复制所有这些资源,有什么建议吗?

0 投票
0 回答
243 浏览

ruby-on-rails - Rails 全球化 Gem + JSON 资源 Gem

我有一个项目,我需要对表字段使用国际化并提供 jsonapi。为此,我使用了Globalize GemJSON API Gem

这是一个名为 category 的简单模型的代码:

当发出一个简单的请求时,/categories响应很好:

但是,当尝试使用 `/categories?sort=name' 按名称排序时,出现异常:

"PG::UndefinedColumn: 错误: 列 category.name 不存在\nLINE 1: SELECT \"categories\".* FROM \"categories\" ORDER BY \"categories...\n ^\n: SELECT \" categories\".* FROM \"categories\" ORDER BY \"categories\".\"name\" ASC"

因为该列name不在表中,categories而是在表中category_translations。我应该怎么做才能解决这个问题?

0 投票
1 回答
552 浏览

ruby-on-rails - 使用 JSONAPI 资源按连接表的字段过滤

我有三张桌子:

  1. 观察
  2. 子类别
  3. 类别

具有以下结构:

我希望能够JSONAPI::Resource根据观察结果进行过滤category_id

如果我尝试执行请求:

我得到:

不允许 subcategory.category_id

如果我尝试执行请求:

尝试执行时,我收到来自 Postgres 的异常:

SQL (6.4ms) SELECT DISTINCT "observations"."id", "observations"."id" AS alias_0 FROM "observations" LEFT OUTER JOIN "observation_translations" ON "observation_translations"."observation_id" = "observations"."id" WHERE (subcategories.category_id = '1') ORDER BY "observations"."id" ASC LIMIT $1 OFFSET $2 [["LIMIT", 1000], ["OFFSET", 0]]

因为桌子上没有连接subcategories

如果我添加一个默认范围以包含subcategories所有查询,但最后一个查询失败,则在尝试计算记录时:

我怎样才能正确地做到这一点?