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