问题标签 [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.
ruby-on-rails - 使用 jsonapi-resources 优化垃圾收集
我目前在我的 Rails 5 应用程序中使用 jsonapi-resources gem,对此我很满意。为了优化 RAM 消耗,我想用.all
以下内容替换控制器中的调用:
但是,这样做时,似乎通过 gem 提供的过滤器不再起作用。因此,虽然旧版本实际上会调整此 url 的结果:
新版本(带有 的版本.find_each
)会忽略这些过滤器。
如何再次应用这些过滤器?
ruby-on-rails - 使用 JasonApi Resources Gem 删除链接
我有一个包含以下类的简单模型:
和资源:
当我对响应进行GET
请求时/countries/1?include=country_categories.category
,总是会带来很多链接。例如
所有这些links
都不会被使用。有没有办法可以删除它们?谢谢 :)
ruby-on-rails - jsonapi-resources——覆盖字段
1
我的资源中有一个字段,如果它nil
在模型中,我想设置它。我有以下代码,但资源仍在产生minimum_approvers: nil
关于发生了什么的任何想法?
ruby - Ruby jsonapi-resources 链接(相对/绝对)
我对 Ruby 非常陌生,所以如果这个问题看起来非常简单或含糊,我提前道歉。
使用时在哪里jsonapi-resources
指定 JSON API 链接的基本路径?我希望从指定完整 URL 更改root-relative
为这些资源的路径。
我找到routes.rb
了
rest - 已经执行或不需要的操作的 API 响应应该是什么
当我的 JsonAPI 被要求执行一些已经完成或没有意义的操作时,我应该返回什么响应(代码 + 内容)?
示例:假设我想请求发表文章。文章草稿通过特定端点更新(此处不相关),并且有特定端点用于发布(我们感兴趣的响应)
4种不同的场景,我需要弄清楚每次发送什么类型的响应:
从未请求发布,并且该文章具有所有发布强制信息,请求发布是有意义的,因此我将返回一个 202 接受的响应,其中包含“发布请求在”属性的文章资源
一个成功的发布发布请求已经发送/确认,并且没有人有时间在这之间进行审查。我应该返回什么?
以前的发布请求已被某人审核并接受(文章现已发布)。API再次接收到这篇文章的发布请求,已经发布了,没有意义,我应该返回什么?
文章未填写所有必填信息,有人提出发布请求。我必须通知用户他的请求由于错误而没有被批准。我在想这个我可以返回验证错误列表。听起来很公平 ?
reactjs - JSONAPI 端点 URL 是否应该与资源的“类型”完全匹配
我正在为我的网站构建一个 jsonapi,在查看各种前端组件时,我遇到了 https://github.com/dixieio/redux-json-api/tree/master/docs 这似乎直接从资源类型
通过资源类型精确解析端点是规范/建议的一部分吗?我记得阅读评论解释没有实际的type
命名约定。
我的 API 有多个端点用于注册不同类型的用户
这些端点关联了不同的业务逻辑,但它们都返回一个user
类型对象。
让多个端点返回相同的资源是一个糟糕的设计
type
吗?我应该更改我的代码以引入其他类型
registration/user
吗?或者我应该向库提交补丁,以便它接受自定义端点 URL?
rails-activerecord - 如何使用响应类型不匹配且不允许我创建记录的 jsonapi-resources 修复 API?
每次我想创建一个新项目时,我的 API 中的不匹配类型都会出现问题。
它发生在两个地方:
- 当我尝试发布新项目时
POST http://localhost:8060/datasets/
回复
- 我可以在访问项目的关系时看到它发生。例如,这是一个 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 关系。
- 关系是
datacentre
has_manydatasets
。 - 我正在使用
jsonapi-resources
和 rails 5api-only
。
数据中心模型
数据集模型
数据中心资源
数据集资源
到目前为止,我通过修改数据集资源中的方法datacentre
及其别名解决了第一个问题(即访问关系)datacentre_id
但这并不能解决 POST 问题。
ruby-on-rails - jsonapi-resources 跨版本关系
如何在不复制相关资源和控制器的情况下添加新版本的资源?
假设我有一个由以下路由描述的 API:
我想在ContactResource
不复制PhoneNumberResource
and的情况下添加我的新版本PhoneNumberController
,有没有办法做类似的事情:
我正在从事一个具有许多相关资源的项目,我不想复制所有这些资源,有什么建议吗?
ruby-on-rails - Rails 全球化 Gem + JSON 资源 Gem
我有一个项目,我需要对表字段使用国际化并提供 jsonapi。为此,我使用了Globalize Gem和JSON 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
。我应该怎么做才能解决这个问题?
ruby-on-rails - 使用 JSONAPI 资源按连接表的字段过滤
我有三张桌子:
- 观察
- 子类别
- 类别
具有以下结构:
我希望能够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
所有查询,但最后一个查询失败,则在尝试计算记录时:
我怎样才能正确地做到这一点?