Tag: api

有什么能解释Rails的API文档吗?

我知道http://api.rubyonrails.org/是为了解释ruby on rails的方法等,但是我需要一些东西来解释我的解释。 这似乎是一个很好的资源,我想了解它或者是时候放弃了。

没有SQL查询的Web应用程序用于当前用户身份验

我有一个每秒钟有很多请求的Web服务器。 为了优化数据库的I / O性能,服务器当前只通过HTTP查询执行2个SQL查询: 有一个查询以获取当前用户, 有一个查询来读取或写入资源。 我现在想知道在会话变量中缓存当前用户的id是否也不聪明。 这样,服务器只能通过HTTP查询执行1个SQL查询。 为此,客户端必须在应用程序上进行身份validation。 然后,在检查用户名+密码的SQL查询之后,服务器可以将其id保存在会话变量中。 在此之后,我们可以删除无用的SQL查询。 因为这看起来非常简单,有用,我想知道为什么流行的身份validation插件,如Devise gem(对于Rails或Sinatra)似乎不会这样工作。 他们是最好的方式吗? 你有什么想法? 谢谢你的任何想法。

当两个路由指向同一模型时,使用Devise resource_name发出问题

我有两条路线为我的api v1和v2指向同一个Devise模型,路由如下: scope :api do namespace :v1 do devise_for :users, :controllers => {:registrations => “devise/v1/users_registrations”, :sessions => “devise/v1/users_sessions”, :passwords => “devise/v1/users_passwords”} end end scope :api do namespace :v2 do devise_for :users, :controllers => {:registrations => “devise/v2/users_registrations”, :sessions => “devise/v2/users_sessions”, :passwords => “devise/v2/users_passwords”} end end 我的问题是当请求被发送到这些API中的任何一个时,Devise resource_name是’v1_user’或’v2_user’,但发送的参数具有params [‘user’]所需的值。 我从Devise helpers.rb devise_parameter_sanitizer方法中获取此信息。 当Devise :: ParameterSanitizer.new(resource_class,resource_name,params)params如下所示: result = […]

如何在不同的命名空间Rails 4.2中遵循DRY原则?

基本上我开发了一个有两个命名空间的应用程序: admin , api和public(只是resources :users例如resources :users )。 一切正常,但我正在重复自己,因为api一些控制器可以很容易地用于admin 。 在这种情况下如何保留命名空间? 谢谢!

withings api身份validation

我正在尝试使用withings api进行身份validation。 我已经正确获得了消费者密钥和密码,并且能够访问应用页面,我还可以使用api进行身份validation。 问题是它没有回来,而是显示404错误:找不到页面。 我多次交叉检查回调url。 这是url 。 这是我试图validation的代码: Documentation , Gem1 , Gem2 。 我想让用户回到我的应用程序。 @callback_url = ‘http://127.0.0.1:3000/auth/withings/callback’ @consumer = OAuth::Consumer.new(WITHINGS_KEY, WITHINGS_SECRET, { :site => ‘https://oauth.withings.com’, :request_token_path => ‘/account/request_token’, :access_token_path => ‘/account/access_token’, :authorize_path => ‘/account/authorize’ }) @request_token = @consumer.get_request_token(:oauth_callback => @callback_url) session[:request_token] = @request_token redirect_to @request_token.authorize_url(:oauth_callback => @callback_url)

是否可以在Rails项目中更改文件夹结构?

我来自.Net MVC背景,希望在RoR中完成一个项目。 具体来说,我正在开发一个REST API。 我将描述我的想法,希望你能引导我朝着正确的方向前进。 我的api必须支持版本,而最强大的api版本方法是复制每个版本的代码。 这样在一个版本中修复问题不会影响其他版本。 在.NET MVC中进行此操作时,区域是您最好的朋友,因为每个版本的源文件可以通过使用区域进行细分。 所以我的问题是:在RoR中,可以更改目录结构,以便进行此层次结构 app/ controllers /v1 c1_controller.rb c2_controller.rb /v2 c1_controller.rb c2_controller.rb models/ /v1 m1.rb m2.rb /v2 m1.rb m2.rb views/ /v1 view1.html.erb view2.html.erb /v3 view1.html.erb view2.html.erb 可以重新安排到这个? app/ v1/ controllers/ c1_controller.rb c2_controller.rb models/ m1.rb m2.rb views/ view1.html.erb view2.html.erb v2/ controllers/ c1_controller.rb c2_controller.rb models/ m1.rb m2.rb views/ view1.html.erb view2.html.erb

Rails跨域ajax获取请求(CORS)

我正在尝试在我的rails应用程序中实现google places api。 这是我在尝试使用从ajax请求获取数据的函数时遇到的错误: XMLHttpRequest cannot load . Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:3000’ is therefore not allowed access. 我正在使用rack-cors gem,我已将此片段添加到我的config / application.rb文件中: config.middleware.insert_before 0, “Rack::Cors” do allow do origins ‘*’ resource ‘*’, :headers => :any, :methods => [:get, :post, :options] […]

rails 4 api rspec test http状态码410

我正在尝试构建正确的rspec测试以validation我的410状态代码处理程序是否正常工作。 以下是路线捕获的所有内容: match ‘*not_found’, to: ‘error#error_404’, via: :all 我的简单错误控制器: class ErrorController < ApplicationController def error_404 head status: 410 end end 我目前的rspec: require ‘spec_helper’ describe ErrorController do context “Method #error_404 handling missing routes =>” do it “Should have the 410 status code..” do get :error_404 expect(response.status).to be(410) end end end Rspec错误消息: 1) ErrorController Method #error_404 handling […]

RSpec控制器测试失败,使用Rails API – 未定义方法’助手’

我正在尝试按照这个Rails API指南来更好地理解如何将Rails API集成到我自己的应用程序中,但是我的RSpec测试在路由期望上失败了,我不知道为什么。 我的错误信息是 1) Api::V1::UsersController POST #create when is not created renders an errors json Failure/Error: expect(user_response).to have_key(:errors) NoMethodError: undefined method “helpers” for # Did you mean? helper_names # ./spec/controllers/api/v1/users_controller_spec.rb:47:in ‘ 我认为,为了发布代码,链接这个Gist可能更方便。 如果首选直接在我的post上发布明文,我很抱歉。 我很想发布^^

Rails 3:API PUT请求失败,记录未更新

我有一个API用于更新艺术家的应用程序和一个尝试与API交互以更新艺术家的客户端。 问题是,每当我尝试执行PUT请求时,记录都不会更新,并且请求会因Completed 204 No Content in 14ms (ActiveRecord: 0.0ms)的Completed 204 No Content in 14ms (ActiveRecord: 0.0ms)错误而Completed 204 No Content in 14ms (ActiveRecord: 0.0ms) 。 这是API控制器: class Api::V1::ArtistsController < Api::V1::BaseController respond_to :json def show respond_with Artist.find_by_id(params[:id]) end def update artist = Artist.find_by_id(params[:id]) respond_with artist.update_attributes(params[:artist]) end end 从客户端模型进行API调用的方法: def update_artist_attributes self.class.put(“/api/artists/#{self.artist_id}.json”, { body: { artist: { bio: […]