问题标签 [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 回答
164 浏览

sinatra - open-uri 可以跨机架应用程序使用吗?

目前我有一个 Sinatra 网络应用程序和一个 Grape API,其想法是实现 Sinatra 应用程序,使网络应用程序只是另一个 API 使用者。

在我的 config.ru 我有这个:

API是 Grape 应用程序,Application也是 Sinatra 应用程序。我正在使用 open-uri 尝试从 Sinatra 路由中的 Grape api 获取 JSON。我用的是薄的。为了便于阅读,我在端口号后面省略了 /uri,Grape 和 Sinatra 应用程序独立运行,稍后我将进一步解释

open("http://localhost")返回:

但是,如果我open("http://localhost:9292")的应用程序挂起。我觉得可能有什么东西阻塞了 I/O,比如它可能在等待自己连接到自己,但我不确定引擎盖下发生了什么,无法真正确定。

如果我将 pow 指向它,将其旋转起来,project.dev然后用它旋转起来,rackup这样我就有两个可以使用的实例open("http://project.dev/what/ever/url/i_need"),它就像一个魅力。所以问题似乎出在将open-uri指向自身的某个地方......我认为......

这是因为Rack::Cascade? 这是一个问题thin吗?或者也许 with open-uri?这只是解决这个问题的完全错误的方法吗?

我对几乎任何解决方案都持开放态度,但我更愿意让它尽可能简单,因为我打算经常使用这种模式,所以外部需求最少。

如果需要任何其他信息,请告诉我,我会尽力提供。

0 投票
1 回答
1934 浏览

ruby-on-rails - Rails 4和葡萄 - 拆分API文件时未定义的方法“调用”

我有一个 vanilla rails 4 应用程序,我正在尝试添加一个版本化的 Grape API。rails 服务器启动正常,但是当我尝试访问 API URL ( http://localhost:3000/v1/user/ping) 时,出现错误:

到目前为止,我设置的 API 非常简单,但我不知道为什么它不起作用

根/app/api/api.rb:

在版本文件夹中,我希望拥有该 API 版本支持的所有类:root/app/api/v1/user.rb:

根/配置/路由:

0 投票
1 回答
500 浏览

ruby-on-rails - rails - 版本化 api 的葡萄 api 错误调用类

我正在尝试为版本化 api(rails-grape) 调用版本特定的类并得到错误

我的目录结构

api.rb 需要'v1/base.rb' 需要'v2/base.rb'

在 v1/base.rb 我访问这个版本的 api 的类

V1::XMLResponses::电话簿::getall()

拜托,你能告诉我为什么会出现这个错误吗?

感谢您的回答,我创建了简单的应用程序来演示它是如何完成的https://github.com/Asmmund/grape_versioning

0 投票
1 回答
1801 浏览

ruby-on-rails - 在 Rails 中使用葡萄 API 生成 HTML

我有一个要求,我需要从我的一个 API 生成/吐出 HTML 标记。我正在使用葡萄 API,但找不到丢弃 HTML 标记的方法。我可以将 content-type 指定为 text/html 并创建一个 HTML 标记,但是有没有更好的方法来实现这一点,比如呈现类似于下面的模板:

'my_template' (HTML) 可以处理页面的外观吗?render 是 GrapeAPI 中未定义的方法,所以不确定我可以使用哪些其他东西?

0 投票
1 回答
2634 浏览

ruby-on-rails - 如何在grape-api rails应用程序上获取远程IP(请求者)

我有一个可用的 rails 应用程序,其中有 grape-gem 作为应用程序中某些 API 的端点。我需要获取请求者的远程 ip 并将其返回到响应中。我可以在常规控制器上使用

但是,在葡萄调用中,“请求”不是定义的变量。

我怎样才能访问葡萄上的远程IP?

0 投票
0 回答
705 浏览

carrierwave - 载波 + 葡萄从 hashie mash 上传图像

我有一个带有文件名、头、名称、内容类型、类型等的 hashie mash。

尝试将其提供给carrierwave时出现以下错误。

但是,当我只提供临时文件时,它不会通过扩展白名单。我怎样才能使这项工作?

0 投票
1 回答
243 浏览

ruby - 使用 Grape API 生成 JavaScript?

我正在使用 Grape 框架来检索数据,效果很好。我还想使用 API 检索 JavaScript 文件。例如:

http://someapi.com/dni_js/dni.js正在调用 API。

实现这一目标的最佳方法是什么?

0 投票
2 回答
1447 浏览

ruby-on-rails - Rails Grape api 版本控制模块结构

我正在尝试实现 api 版本控制,与我在这里所做的几乎相同。但我似乎没有在 rails 应用程序中获得正确的模块/文件夹结构,因为我收到了诸如V1 is not a module /app/api/v1/xml_responses/device.rb:3:in '<module:API>' 目录结构之类的错误消息

api.rb

v1/base.rb

V1/xml_responses/device.rb

路由.rb

我无法弄清楚我做错了什么!请你帮助我好吗?

0 投票
1 回答
259 浏览

ruby-on-rails-3.2 - 如何用葡萄实体呈现一个命名空间模型?

我有一个这样的命名空间模型:

我这样定义一个实体:

显示模型时出现错误:

错误:

app/models/message/notification.rb:1:in `':类通知的超类不匹配(TypeError)

0 投票
3 回答
2657 浏览

ruby-on-rails - 是否可以过滤对 Grape API 的请求的参数?

如果我在 Grape API 请求上设置参数验证,是否可以获得仅验证参数的哈希?

有没有另一种方法可以params限制在参数验证块中列出的那些?有点像 Rails strong_parameters 的工作方式。