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

ruby - 如何为多个路由编写相同的要求,例如 POST、PUT?(红宝石葡萄)

如何避免重复代码?

0 投票
1 回答
1137 浏览

ruby-on-rails - 为葡萄 API 添加路径/自动加载路径不起作用

我正在使用 Grape 构建我的 API,根据文档,我在application.rb so that allapp/api 中添加了以下几行,将 ruby​​ 脚本添加到路径中,并允许在开发模式下自动重新加载:

我还按照要求在 config/initializers 中添加了一段代码。但是,自动重新加载和路径都不能正常工作。

对于路径,我需要require在我正在使用的主 API 文件中显式添加所有内容(我将 Grape 文件分成文件 + 目录下app/api。如果我删除了要求,我会得到:

自动重新加载也根本不起作用。当我更改某些内容时,它不会自动重新加载。

我在这里想念什么?

0 投票
1 回答
1990 浏览

ruby - 将 Grape API(非 Rails)拆分为不同的文件

我正在用 Grape 编写一个 API,但它是独立的,没有 Rails 或 Sinatra 或任何东西。我想将app.rb文件拆分为单独的文件。我看过How to split things in a grape api app? ,但那是在 Rails 中。

我不确定如何使用模块或类进行这项工作——我确实尝试将不同的文件子类化到我的 bigGrapeApp中,但这很丑,我什至不确定它是否能正常工作。最好的方法是什么?

我目前有按文件夹( , 等)拆分的版本v1v2但仅此而已。

0 投票
1 回答
2917 浏览

ruby - Grape API modify parameter presence error

As you know, you can specify that a parameter is required in a route like so:

requires :province, :type => String

However, I would like to be able to change the error that is thrown and provide my own error JSON when the parameter is not given.

How can I do this easily? I am fine with monkey patching.

EDIT: I see at line 191 rescue_from and that looks like it could be helpful but I'm not sure how to use it. https://codeclimate.com/github/intridea/grape/Grape::API

0 投票
2 回答
2939 浏览

ruby-on-rails - 使用 Grape API 向客户端发送文件

我一直在做使用carrierwave进行文件上传的rails应用程序。如何使用 Grape API 将现有文件发送到客户端?假设文件位于“public/uploads/datafile/1/file.txt”目录中。

0 投票
3 回答
4967 浏览

ruby - Ruby Grape:json 输出被转义

我正在研究一个示例 Ruby / Grape 示例,除了 json 被转义之外,一切正常。我也是全新的 ruby​​ 及其框架(仅 3 天),很抱歉,如果这个问题是补救性的,并提前谢谢你

我相当肯定不应该转义引号,无论如何这里是转义的输出:

我的代码

配置.ru

$:.unshift "./app"

需要'sentimentapi_v1.rb'

运行 SentimentApiV1

包和版本

我正在运行 ruby​​ 2.0、grape .5、windows 8 64bit

0 投票
1 回答
1170 浏览

ruby-on-rails - 将 Grape API 渲染为视图中的字符串

我在 Rails 4 应用程序中设置了基于葡萄的 API 。我想将其中一个 API 调用生成的 json 呈现到内联标记中的视图中- 特别是为了使 JSON 数据可用于 angularjs 视图,以避免在页面加载后对服务器进行(JSON API)调用。

任何想法如何将Grape API 呈现为 string

/app/api/api.rb

视图/仪表板/index.html.erb

我可以使用 get http 请求来渲染它,但我希望避免 http 调用的开销。我宁愿直接调用 API 类。

0 投票
1 回答
1158 浏览

ruby - 在机架应用程序中使用 CORS 和 Warden(Grape API)

我有一个基于 Grape 的 API 作为机架应用程序运行,使用rack-cors允许跨域请求,并使用Warden进行身份验证。CORS 按预期工作,但在我调用env['warden'].authenticate. 在这些情况下,我会收到“来源不允许”的响应。

我相信这是由于中间件的顺序,但我对机架应用程序比较陌生。我发现了一些描述类似问题的信息,其中有一个示例,说明如何通过强制使用中间件的顺序在 Rails 中进行这项工作,config.middleware.insert_before Warden::Manager, Rack::Cors do ...但我不知道非 Rails 等价物。

以下是 my 的简化近似值config.ru

我尝试交换use指令的顺序,但无论哪种方式,我都会从使用warden 的方法中得到相同的“来源不允许”响应。我的部分问题是我不清楚是什么决定了机架应用程序中中间件的顺序。

我的预感是中间件的顺序导致这个问题可行吗?好像我错过了一些基本的东西。我想让 rack-cors 和 Warden 玩得很好,或者找到另一个解决方案来允许 CORS。我尝试显式发送 Access-Control-Allow-Origin 标头,但 Warden 似乎也将其清除了。

0 投票
1 回答
3289 浏览

ruby-on-rails - 葡萄 api 忽略 PUT/POST 参数

我正在为 Rails 应用程序构建一个葡萄 api。我正在使用 rspec 请求规范对其进行测试。我在制作这样的发布路线时遇到了问题:

相应的规格:

Grape 'controller' 无法看到任何未作为 url 的一部分发送的参数。当打印出 params[:tickets_ids] 时,它是 nil。使用获取请求时我没有这个问题。使用 curl 手动发送请求时,我能够重现该问题。嵌套资源路由也不是问题,因为它的行为与顶级路由相同。

我在 github 上发现了以下问题,但应用给定的猴子补丁不起作用并在启动时破坏了服务器。 https://github.com/intridea/grape/issues/417

我正在使用以下版本的 gems 并且由于依赖冲突而无法升级它们:

任何帮助和提示将不胜感激。

0 投票
1 回答
1047 浏览

strong-parameters - 在非 Rails 应用程序中使用 rails 4.0 strong 参数

我在葡萄 api 应用程序中使用 active-record 4.0,但由于强参数仅适用于 rails 控制器,我如何允许葡萄 api 类中的参数