如何从现有应用程序禁用Spree API功能

时间:2016-07-07 23:31:27

标签: spree

我有一个使用Spree gem开发的Rails应用程序。出于安全原因,我想禁用所有API功能 - 进行REST调用的能力,方法,路由。我意识到,如果没有API令牌,就无法调用大多数API功能。

“关闭”API功能的最佳方法是什么? 最佳方式==最不容易侵入现有代码库

1 个答案:

答案 0 :(得分:1)

到目前为止,我提出的最好的方法是将其添加到application.rb类中我的主机应用程序Application中:

initializer "delete_spree_api_routes", after: "add_routing_paths" do |app|
  app.routes_reloader.paths.delete_if { |path| path =~ /\/spree(-[^\/]+)?\/api\/config\/routes.rb/ }
end

如果它们是从Spree API提供的routes.rb加载的,它会立即删除路由中的所有路径。它有点难看,但它确实起作用。

编辑:我建议小心使用此功能,因为Spree在少数情况下使用自己的API,例如检索国家/地区的状态列表(GET /api/v1/states)< / p>

相关问题