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

android - 仅允许 Android 应用访问 Rails API 的最佳实践

我没有找到任何具体的答案,而且大多数解决方案都是较旧的解决方案,所以我想向社区寻求最佳实践,以保护 Rails API 免受其他请求的影响,并只允许 Android 应用程序访问它。没有用户注册或登录。Android 应用只需要访问数据。

我正在考虑在我的 Android 应用程序中插入一个密钥,并在每个请求中传递该密钥,但这对我来说似乎不太安全。

在保护 Rails API 免受其他请求并只允许 Android 应用程序访问它时,推荐的做法是什么?谢谢你。

0 投票
1 回答
117 浏览

ruby-on-rails - 在 Rails 中检查调用 Closio API 的用户电子邮件 - HTTParty 并且没有方法错误

我正在与一个团队合作,在他们注册 Web 应用程序时检查用户的电子邮件输入。如果使用 HTTParty 通过以下 API 调用未找到用户的电子邮件,则不允许用户注册。我们正在获取函数中首先出现的任何语法的 method_errors。例如,在下面的方法中,“include”作为未定义的方法错误出现。

更新:所以我们使用 HTTParty 的内联版本,我们的注册控制器(使用设计)看起来像这样:

我们收到语法错误:“语法错误,意外 =>”我们搞砸了格式吗?

0 投票
0 回答
264 浏览

ruby-on-rails - 除非我们的 Rails 应用程序完全是 API,否则 ActionController::API 是否有好处?

如果我的 Rails 应用程序永远只是一个 API,那么我不是 100%。

考虑到这一点,我保留了 ActionController:

class ApplicationController < ActionController::Base

并选择创建一个 api 控制器,

class ApiController < ActionController::API.

现在,我没有更改我application.rbconfig.api_only.

话虽如此,我确实知道,如果我只构建一个 API,它可能会快 40%,rails-api因为它减少了堆栈中的中间件。我仍然通过继承来获得这种好处ActionController::API吗?如果我没有这 40% 的提升,那么这样做有什么好处吗?

0 投票
1 回答
276 浏览

ruby-on-rails - Rails4 rails-api 测试:通过标头令牌测试身份验证时未定义 session_serializer

我写了一个小应用程序来练习 minitest。堆栈的版本如下:

  • 导轨 4.1.4
  • 红宝石 2.1.2p95
  • 设计 3.2.4
  • devise_token_auth 0.1.25
  • 轨道 API 0.2.1

该应用程序是根据 rails-api 指令从头开始生成的,我可以从客户端看到一切正常。

我遇到的困难是必须处理身份验证的控制器测试。

我从以下方面获得了这种测试的灵感:

https://github.com/lynndylanhurley/devise_token_auth/blob/master/test/controllers/demo_controller_test.rb

我的测试代码位于: http: //pastebin.com/iPVk9Tzq

当我运行测试套件时,我得到以下错误:

我在网上尝试了不同的搜索,但我无法弄清楚如何解决这个问题。

我知道发生错误是因为应用程序是作为无状态 API 实现的,因此在任何地方都没有存储会话。

显然,如果我注释掉“request.headers.merge!...”行,错误消失并且测试失败并返回 401(当用户未登录时应该如此)。

任何帮助/建议都会受到广泛赞赏!

问候

0 投票
1 回答
174 浏览

javascript - 使用 Devise 覆盖 Rails API 身份验证的 Backbone.sync

我正在尝试覆盖骨干网的 .sync 方法,以便让身份验证适用于我的 Rails API。我已经离开了这篇文章,我觉得我真的很接近弄清楚了。我设置了导轨侧,但我在前端遇到了麻烦。我被困在他所在的另一个职位上

我不太确定用什么来代替“YourAppName”。这是我到目前为止的主干代码。我的应用程序被称为“Droppin”,当我将它放入时,我收到错误说它没有定义。

为了获取该 CSRF 令牌并将其正确附加到 HTTP 标头,我需要做什么?我还应该提到我正在使用 require.js 并且正在处理 main.js 文件中的覆盖(不确定这是否是正确的地方)。

0 投票
2 回答
1108 浏览

ruby-on-rails - rails-api 和 angularJs 中的 CORS

我一直在尝试从关于这个主题的无数其他问题中尝试各种解决方案,但没有任何运气......

我正在尝试在 AngularJs 中设置一个带有前端的 rails-api 项目。他们将在不同的领域。我可以毫无问题地发出 GET 请求。但是当我尝试执行 PUT 时,我会进入 Chrome 控制台:

这是我失败的请求的样子:

这是我在 AngularJs 中的 app.js:

这是在我的 Rails 项目中:

应用程序.rb:

我的 routes.rb、application_controller.rb 和 thingy_controller 是默认的脚手架文件。(我尝试根据 CORS 的其他解决方案修改它们,但没有任何运气。)

我也使用过 POSTMAN(Chrome 扩展程序),看看是否可以使用 PUT。请求顺利通过。

如果有人能指出我正确的方向,我将不胜感激!

0 投票
2 回答
394 浏览

ruby-on-rails-4.1 - Active Model Serializer 不渲染我的模型

我正在尝试集成 Active Model Serializer 以呈现具有关系的 JSON 元素。

我遵循此地址上的文档:http ://rubydoc.info/gems/active_model_serializers

我不确定我是否做错了什么,但看起来序列化程序不起作用。我需要做更多的步骤吗?

我安装 gem,生成序列化程序并添加关系。

请你指导我好吗??

我的项目在这个仓库中:

https://github.com/dwdsolutions/argo

此致

0 投票
1 回答
28 浏览

ios - 将 ROR API 部署到 Heroku 并破坏它

我正在为 iOS 应用程序开发 Rails API。我能够在我的本地主机上运行它并从 iPhone 模拟器中使用它,但现在我想在设备上进行测试。我成功推送到 heroku 并将我的 ROOT_URL 更改为它提供的那个。现在,当我访问应用程序 URL 时(如果您真的想知道,请访问http://sleepy-lake-5504.herokuapp.com/v1/users ),我收到错误消息:


应用程序错误

应用程序发生错误,无法提供您的页面。请稍后重试。


而不是 JSON 数据。

难道我做错了什么?我是否需要对 heroku 做一些特别的事情才能将其作为 API 使用?不用说,这让我非常难过。

任何帮助表示赞赏。

0 投票
1 回答
45 浏览

ruby-on-rails - 安装 rails-api 后移除支架(ruby on rails)

我安装了 rails-api gem。然后我制作了一个新的 rails 应用程序,并设置了一个index操作以使用@tasks = Task.all. 在我提出的观点中<%= @tasks.each do |task| %> <%= task.navn %> <% end %>

[]我在从数据库中获得的数据下得到了这个符号。我尝试打印的所有信息都在符号中。

有没有人有办法去掉括号?

我已将我的 testapp 推送到 github,以便您可以查看我的应用程序中的内容。 https://github.com/niiicolai/testruby

0 投票
1 回答
559 浏览

javascript - 使用 rails api、backbone.js 和设计的经过身份验证的请求

我有一个 rails api 设置,使用设计用于 auth,backbone.js 用于前端。我能够让用户注册并登录,但我无法向 api 发出后续请求。我需要在签名后的每个请求中附加一个身份验证令牌和一个电子邮件地址,以便发出进一步的请求,但我不知道该怎么做。

我的应用程序的流程是这样的

  1. 向 /sign_in 发送获取请求以使用自定义主干同步设置 csrf 标头
  2. 使用凭据向 /sign_in 发送发布请求并取回身份验证令牌
  3. 随每个后续请求发送令牌和电子邮件

随每个请求发送令牌和电子邮件是我遇到的问题。如何将其附加到骨干网的请求中?

我应该像使用 csrf 令牌一样将它添加到 http 标头吗?

这是我到目前为止的设置。

带过滤器的 API 控制器

会话控制器

覆盖backbone.sync以设置csrf标头