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

ruby-on-rails - 在带有身份验证的rails中编写api的最佳方法是什么?

我想为我的 Rails 应用程序和身份验证编写 api。我也想以选择性和有条件的方式传递我的关联数据。

如果我为此使用respond_to块,那么我的控制器中会有很多混乱,我不想要任何方法。

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

0 投票
2 回答
219 浏览

ruby-on-rails - 构建 Rails Api 服务问题

我正在构建一个 rails api 服务,我从 rails-api gem 开始,为用户身份验证设计 gem,我还推出了自己的版本控制,我只需要优秀的RailsCast on Versioning API

现在这是我面临的一些问题

  • 首先,虽然 rails-api gem 删除了所有不需要的模块,但我希望返回的错误是 api 格式,然后记录主要异常,因为现在如果我什至应该使用 curl 发出请求和它由于路由或其他原因而失败,整个错误堆栈以带有一些 javascript 的 html css 的形式返回,我很确定这不是我想要返回给我的 api 消费者的内容。

所以我的问题是,我如何正确处理 rails-api 中的所有错误而不返回长错误堆栈。

  • 其次,我如何让 Rails 生成器在我在路由中指定的命名空间下自动创建所有新控制器(我认为这对我来说不切实际,但是嘿,我只是在问:P)

  • 也有人可以指出我可以用来构建成功的 rails api 服务的其他必要资源。

谢谢

0 投票
1 回答
960 浏览

ruby-on-rails - 用 Rails 制作 API 的更好方法是什么?

使用 Rails 创建 API 的更好方法是什么:

  1. 在主应用程序中创建可安装的导轨引擎。在路由中为 api 设置 url 路径:example.com/api/v1。
  2. 使用rails-api gem单独创建应用程序并为 api 创建子域:api.example.com/v1。
0 投票
2 回答
2185 浏览

ruby-on-rails - 如何获取异常以呈现 Rails 开发错误页面的纯文本版本?

我正在使用 rails-api 构建一个没有 Web 界面的 API。当我在开发中遇到错误时,我希望只看到纯文本中的错误消息和堆栈跟踪,而不需要所有的 HTML 包装。如何覆盖全局异常处理,以便在开发模式下以纯文本/JSON 呈现堆栈跟踪,并在生产中呈现通用错误消息?

0 投票
1 回答
1998 浏览

javascript - Could not find "application" template or view. Nothing will be rendered Emberjs RailsAPI

I've been stuck trying to find an answer or a fix to what seems a very simple issue.

I have recently started RailsAPI app. I decided to play around with EmberJS and follow a recent tutorial found here

When I go to the index page of my app, all I see is a blank screen and my templates won't render. It seems that Ember is not able to find my templates for some reason.

Here's what I see in the console:

As you can see, the Ember.TEMPLATES is empty. My current app structure looks like this

And so on, I will update as needed. Its pretty much a basic Rails app.

Here's how my relevant files look like:

application.js.coffee

templates/application.hbs

templates/index.hbs

All of the necessary files (ember, handlebars, jQuery) are being rendered correctly because I don't see any errors in the console and they are in the HTML generated.

I'm using the gem handlebar_assets to compile the assets for the AssetsPipeline and the templates are being generated correctly.

Why wouldn't ember be able to find the templates? Thanks for the help

UPDATE Here's the source code if anyone is interested in taking a look at it https://github.com/AppDojo/AppDojo-API/tree/ember-railsapi

SOLUTION

Setting HandlebarsAssets::Config.ember = true set the right template storage for the templates to Ember.TEMPLATES. I was missing an s from Handlebars...

0 投票
3 回答
21106 浏览

ruby-on-rails - devise 的 token_authenticable 安全吗?

我正在使用Rails API构建一个简单的 api ,并希望确保我在正确的轨道上。我正在使用 devise 来处理登录,并决定使用 Devise 的token_authenticatable选项,它会生成一个 API 密钥,您需要随每个请求一起发送该密钥。

我将 API 与骨干/牵线木偶前端配对,并且通常想知道我应该如何处理会话。我的第一个想法是将 api 密钥存储在本地存储或 cookie 中,并在页面加载时检索它,但是从安全角度来看,以这种方式存储 api 密钥的一些事情让我感到困扰。通过查看本地存储/cookie 或嗅探任何通过的请求并使用它来无限期地冒充该用户来获取 api 密钥是不是很容易?我目前正在每次登录时重置 api 密钥,但即使这似乎很频繁 - 任何时候你在任何设备上登录,这意味着你会在其他所有设备上注销,这有点痛苦。如果我可以放弃这个重置,我觉得从可用性的角度来看它会有所改善。

我在这里可能完全错了(希望我错了),任何人都可以解释这种方式验证是否可靠安全,如果不是,还有什么好的选择?总的来说,我正在寻找一种方法,可以安全地让用户“登录”到 API 访问,而无需频繁强制重新验证。

0 投票
1 回答
474 浏览

ruby-on-rails - Rails Model:保存子对象数组

我是 Ruby 和 Rails 的新手。我正在尝试创建一个“团队”对象,该对象具有领导者 ID 和附加的用户数组。

问题我无法将用户数组附加到团队对象我无法定义领导对象,仅存储其 ID

非常感谢任何帮助

我的 Rails 模型:

控制器动作

JSON 已发送

对象已创建,但用户和领导者未保存,对象返回为

0 投票
2 回答
2073 浏览

ruby-on-rails - 验证用户!Api 版本控制轨后方法不起作用

我使用 Rails 作为移动应用程序的后端。我尝试包含 Api 的版本。我使用设计进行身份验证,现在使用 authenticate_user!方法不起作用,它向我显示错误

我不知道我在哪里做错了。请帮我解决这个问题。任何帮助表示赞赏。

更新:

0 投票
1 回答
161 浏览

ruby-on-rails - Rails 3 'request_via_redirect' 麻烦

request_via_redirect有问题

我如何使用这种方法:

并得到一个错误:

任何人都可以解释什么是错的?

0 投票
2 回答
1660 浏览

authentication - Ember-Data + AMS => JSON 或 HTTP 标头的 Ember.js 身份验证令牌?

语境:

我有一个 Ember.js 1.1.0-beta.1 应用程序,它与 Rails-API 服务器(Rails 4)交换 JSON 数据。JSON 数据交换是通过 Ember-Data 1.0.0-beta.2 和 Active Model Serializers 0.8.1 (AMS) 完成的。我正在为 Ember-Data 和 AMS 使用默认推荐配置,并且符合 JSON-API 规范。

在任何给定的 RESTful 调用中,客户端都会将当前身份验证令牌传递给服务器。身份验证令牌经过验证并停用,并生成新的身份验证令牌并将其发送回客户端。因此,每个 RESTful 调用都接受请求中的身份验证令牌,并在响应中提供新的身份验证令牌,客户端可以缓存并用于下一次 RESTful 调用。

问题:

我在每个请求和响应中将身份验证令牌放在哪里?

它应该是请求和响应中每个对象的 JSON 的一部分吗?如果是这样,令牌放在现有对象的 JSON 结构中的什么位置(与身份验证无关)?

还是应该将它们放在每个请求和响应对象的 HTTP 标头中?

人们最终可能希望在新的 Ember Guides Cookbook 中找到“The Ember Way”是什么?

更多背景:

我已经熟悉以下链接:

...并且我正在寻找超越这些的答案,并且特定于 Ember-Data + AMS。

除了需要通过 Ember-Data 在响应中将新令牌传递回客户端之外,假设我的客户端代码在其他方面类似于 GitHub 上的 @machty Embercast 示例:https ://github.com/embercasts/authentication -part-2/blob/master/public/js/app.js

非常感谢!