Rails 4:构建一个超级简单的api方法并保护它

时间:2016-07-07 09:41:41

标签: ruby-on-rails api ruby-on-rails-4

大家好,最好的方法是在控制器中添加一个方法,将其作为api公开,供另一个应用程序(只有一个)用来更新数据库中的某些列?我不想用版本控制来构建一个花哨的api,所有这些都是简单的一个方法,在控制器中暴露为响应json数据。另外,我该如何保护它?

技术堆栈:rails 4json

2 个答案:

答案 0 :(得分:1)

保护API方法的最基本,最简单的方法是HTTP Basic Auth

只需在控制器顶部添加一行:

class MyController < ApplicationController
  http_basic_authenticate_with name: "admin", password: "password"

  def update_columns
    ...
  end
end

然后不要忘记在其他应用程序中将这些名称和密码添加到API调用参数中。

PS。如果您在轻型API模式下使用Rails,则还需要在控制器中包含此模块:

  include ActionController::HttpAuthentication::Basic::ControllerMethods

答案 1 :(得分:-1)

您可以在路线中添加范围,并在请求中添加该控制器方法,如

   scope '/api' do
     resources :chattings,only: [:create,:index,:show,:destroy] do 
       collection do
         get 'recent'
       end
     end
   end

并且为了安全保存api_secret在数据库中生成登录时间并用标题中的api_secret保护每个api