问题标签 [grape-entity]

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 投票
3 回答
747 浏览

ruby-on-rails - 如何在葡萄实体宝石中定义动态键?

假设我有一个User模型,并且我正在User通过Grape::Entity. 所以在这里我想定义一个动态键,其名称及其值将基于其他键(、、、idnameemail

我怎么能做到?提前致谢!

0 投票
1 回答
275 浏览

ruby-on-rails - 在 Grape 和 Grape Entity gems 中共享 desc 和 type

我要做的是在葡萄和葡萄实体宝石中重用类型和描述。

在文档中,我阅读了以下内容:

您可以通过使用:Entity.documentation 直接在 params 块中使用实体文档。

这允许我使用 Grape Entity 中定义的文档中的字段描述和字段类型。

每当我定义一个只需要 1 个字段的 API 时,我都需要做这样的事情(我觉得有点脏):

给定:

我可以:

我不喜欢上述解决方案主要有两个原因:

  • 我不喜欢使用旨在支持文档生成的帮助器的字段“类型”。
  • 这很麻烦。

有没有更好的方法在 2 个宝石之间共享类型和描述?

0 投票
1 回答
622 浏览

ruby-on-rails - 从父类继承类定义

我正在我的 Rails 模型中构建葡萄实体,如下所述:

https://github.com/ruby-grape/grape-entity#entity-organization

目前,我正在根据模型本身的列哈希自动创建默认值。

所以我有一个静态的 get_entity 方法,它公开了所有模型的列:

然后我在这里有一个示例 Book 模型,在声明的 Entity 子类中使用它(注释还显示了我如何覆盖模型列之一的文档):

这种方法的缺点是我总是需要在我想要实体的每个模型中复制和粘贴类实体声明。

任何人都可以帮我自动为 ApplicationRecord 的所有孩子生成类实体吗?然后,如果我需要覆盖,我将需要在类中有实体声明,否则如果默认声明足够并且可以保持原样。

笔记:

我不能直接在 ApplicationRecord 中添加类实体定义,因为实体类应该调用 get_entity 并且 get_entity 取决于 Books 的 column_hash。

解决方案:

多亏了brainbag,最终做到了:

谢谢!

0 投票
0 回答
80 浏览

ruby-on-rails - 自动创建 API 端点及其基本的招摇文档

Rails 是如此神奇,以至于我需要比我更了解的人的帮助。

由于我有很多 crud API 基本端点一遍又一遍地重复,我决定自动化它们的创建(请参阅我在以下github 问题中的最后一篇文章)。

为了获得一些基本有效的招摇文档,我还通过向我的 ApplicationRecord 添加一些自定义代码来自动创建 Grape::Entities(请参阅添加到此问题的 github SOLUTION 片段:从父类继承类定义)。

通过上面的 2 个自定义,我可以通过简单地创建 API 端点:

上面的方法将创建一个端点,它将使用自动创建的实体,这样它就会自动记录默认值,如果需要,以后可以在 Book 模型类中覆盖这些默认值:

当上面的代码似乎中断时有1个异常:似乎每当我在Rails应用程序(例如初始化程序)的引导期间以早期状态交互时,当我调用V1::Base.show Book(创建api端点)时调用Book::Entity以下错误返回:

谁能给我一个暗示它可能是什么?与模型的早期交互可以是一个简单的 Book.all,它闻起来像一个线程问题。

0 投票
1 回答
746 浏览

ruby-on-rails - Grape::Entities,如何只为写入而公开属性

如何公开 VehicleDetails 的修订属性,该属性不会出现在GET请求中,但在PATCH/POST上是强制性的(仅写入操作)?

0 投票
1 回答
526 浏览

ruby-on-rails - 在葡萄实体中为循环应用别名

我想获得以下 JSON。

参数是产品和名称。我想退回产品,ProductName。

如何为葡萄实体框架中的循环元素应用别名?

0 投票
0 回答
327 浏览

ruby-on-rails - 葡萄实体空活动记录数组

我正在使用葡萄 API 并使用葡萄实体框架返回响应。

如果用户在场,则期望输出。活动记录关系数组(这行得通)

如果用户空白,则期望输出。活动记录关系的空数组(如何处理

0 投票
0 回答
179 浏览

ruby-on-rails - API 文档 - 如何使用 rabl 和 grape-api 给出响应模式

我们在 Rails 应用程序中使用grape作为 API,使用grape-rabl作为响应。现在我们正在为 API 编写文档,我们为此使用了grape-swagger。但是我们不知道如何记录 API 端点的响应模式。葡萄大摇大摆的教程提供了一种记录响应的方法,但仅限于使用葡萄实体时。使用grape-rabl时如何生成文档?

0 投票
1 回答
294 浏览

ruby-on-rails - 如何根据字段的值使用葡萄实体?

任何在葡萄和葡萄实体上工作的人我都有一个问题。db: Mongoid 我有两个模型 1. 用户 2. 答案

每个用户都有 package_type: 1or 2or3 并且每个答案也有数组中的包类型,但只有一个值。喜欢[1][2][3]

我想发送那些具有 package_type == users.package_type 的答案作为响应。

用户实体:

答案实体:

0 投票
1 回答
132 浏览

grape - 葡萄实体暴露以委托/转发给其他对象

使用 Grape Entity 时,有时我们希望从内部/相关对象中公开一些字段。我们可以通过以下方式简单地做到这一点:

但是,如果许多领域需要这种处理,这可能会变得非常重复。有没有办法定义委托/转发,所以一堆expose都与另一个对象相关联?