问题标签 [grape-api]

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 回答
281 浏览

ruby - 使用葡萄 API 将数据插入 PostgreSQL 的多个表?

这是我的葡萄 API Ruby 代码,它将发布到它的 JSON 数据插入到单个表中:

如何使用葡萄 API 将数据插入到多个表中?我正在使用 PostgreSQL。

0 投票
1 回答
1695 浏览

ruby-on-rails - Rails 3.2.11 & Grape 不能这样的文件:app/api/v1.rb

我试图在 Rails 3.2.11 应用程序中运行 Grape API。根据葡萄文档,我应该在我的 config/application.rb 中添加以下几行。

并使用以下代码创建 config/initializers/reload_api.rb:

但这对我不起作用。这是我的代码。在我的 app/api/v1.rb 中:

还有我的 config/routes.rb:

当我运行时rake routes,出现以下错误:

很明显,Rails 无法加载我的 api。为什么?

0 投票
2 回答
5047 浏览

ruby-on-rails-3 - 如何在葡萄 api 应用程序中拆分内容?

在我看到的每个示例中,人们只实现了一个巨大的 api.rb 文件。前任:

虽然这种方法可以正常工作,但它很快就会变得拥挤且难以维护,所以我想在我的应用程序上拆分内容。

例如,我想从我的资源中拆分我的实体,然后在不同的文件之间拆分我的资源。举些例子:

现在,api.rb将类似于:

app/api/entities/post.rb将类似于:

app/api/resources/post.rb将类似于:

当我们这样做时,我们会遇到以下消息:

预期 /blog-app/api/resources/post.rb 来定义 Post


解决方案(感谢 dB。和我的同事)

您必须将结构更改为:

然后,在post_api.rb

最后,api.rb变为:

现在/api/v1/posts应该工作:)

0 投票
3 回答
4099 浏览

ruby - {葡萄}授权

我正在尝试在 ruby​​ 中创建一个宁静的 json api - 所以我在Rack 内使用葡萄( https://github.com/intridea/grape )。我没有在这个项目中使用 Rails,所以康康舞、魔法等等……似乎不是最好的选择。另外,我讨厌在葡萄的声明性 DSL 中混入一堆命令式逻辑。

虽然葡萄内置了身份验证支持,但我没有看到任何关于授权的信息。看起来这将是一个足够常见的用例,这条路以前会走过,但是在谷歌和葡萄代码库本身进行了一些相当彻底的挖掘之后,我什么也没发现。

有没有人为他们的葡萄项目实施过这样的事情?你用了什么?

0 投票
1 回答
6378 浏览

http - 对于没有正文的 4xx 错误,Content-Type 应该是什么?

考虑一个获得以下响应的 HTTP 请求:

这样的内容类型应该是什么?

  • 设置为无?
  • 没有设置?
  • 设置为text/plaintext/html
0 投票
1 回答
5639 浏览

ruby - Sinatra 和 Grape API 在一起?

我一直在阅读,我发现了这个名为 Grape for ruby​​ 的微框架。我目前正在使用Sinatra来处理 Web 界面,但我也想实现 Grape 来处理应用程序的 API 方面。我找不到对这个主题有帮助的建议。Grape 文档说“Grape 是一个用于 Ruby 的类似 REST 的 API 微框架。它旨在通过提供简单的 DSL 来轻松开发 RESTful API,从而在 Rack 上运行或补充现有的 Web 应用程序框架,例如 Rails 和 Sinatra。” 所以听起来应该有一种将两者结合起来的官方方式吗?这个应用程序也将在 Heroku 上运行。

0 投票
1 回答
3065 浏览

ruby-on-rails - 在 Grape 中使用 Rails ApplicationHelper

我在 application_helper.rb 中定义了一个方法:

我也在使用 Grape 创建 API。它在 Rails 应用程序之外的自己的模块中:

我很确定 Grape 是一个 Rack 应用程序,因此它无法正常访问 Rails 模块。当我尝试在其中一种 API 方法中调用“bayarea_cities”方法时,我收到未定义的变量或方法错误。我尝试将 ApplicationHelper 模块包含在“include ApplicationHelper”中,但这不起作用。

如何在 API 类中访问它?

更新:

感谢Deefour的更新。我添加extend self到我的 Helpers 模块中,并将这些方法引用为实例/混合方法(而不是模块方法),但我仍然遇到同样的错误。在我的 lib/helpers.rb 文件中,我有:

在我的 API 文件中,我有:

当然,我有 config/initializers/helpers.rb 文件说require "helpers"

但是,当我调用美国各州 API 方法时,例如,通过转到http://localhost:5000/api/states,我得到:

有任何想法吗?

0 投票
1 回答
1697 浏览

ruby - Grape API 和 HTTP 摘要认证

我正在为我的 ruby​​ 应用程序创建一个 API,它基于 HTTP Digest Authentication 对用户进行身份验证。我决定使用 Grape API 库,因为它可以在 ruby​​ 中创建 API 清洁器。Grape 文档指出您可以使用摘要式身份验证,例如:

上面的葡萄实现是一个包装器Rack::Auth::Digest::MD5

现在,为了安全起见,我读到,从 RFC 2617 开始,您不需要将密码作为纯文本存储在数据库中,您可以存储用户名的 MD5 摘要:realm:password 并针对它进行身份验证,因此我创建了一个 DataMapper 模型:

现在有了我提供的东西,我不知道如何将这两者联系起来并使其工作。

0 投票
3 回答
4080 浏览

ruby-on-rails - 在 Rails 中安装多个 Grape API 时遇到问题

我有两个 API 正在尝试安装在我的 Rails 应用程序中——一个名为“v1”,另一个名为“twilio”。每个 API 将由多个文件组成,所以我希望每个 API 都有自己的文件夹。在我的 app/api 目录中,我有 2 个文件夹——“v1”和“twilio”——以及一个名为“api.rb”的文件,我试图用它来挂载这两个 api。它的内容是:

在“v1”目录中,我有一个名为“root.rb”的文件,其开头如下:

在“twilio”目录中,我有一个名为“twilio_api.rb”的文件,其开头为:

我的路线文件有:

当我启动我的 Rails 服务器时,我收到了错误:

我不明白这一点,因为 root.rb 确实定义了 Root 类。任何帮助将非常感激。

0 投票
2 回答
7034 浏览

ruby-on-rails - 如何允许使用 GRAPE API 下载二进制文件

我想允许使用 ruby​​ 的 Grape API 下载二进制文件(.p12 文件)。这就是我正在尝试的。

使用 ActionController 的等效代码是

问题是使用 API 下载的文件似乎是一个文本文件,每个字符都嵌入了 '\ufffd' 前缀,而使用浏览器下载的文件似乎是二进制文件。如何使用 GRAPE API 框架来允许下载通过 ActionController 的 send_data 下载的相同文件