我有Rails应用程序,我想在我的Android手机中使用CRUD功能。
Rails在所有控制器中提供默认的respond_to动作(html,json,xml..etc)。我一直在为Android开发移动应用程序。我想在我的移动Rails应用程序中进行CRUD操作。 我们可以使用此默认的respond_to进行API调用吗?
如果我们为API执行单独的命名空间,默认情况下所有控制器都编写相同的方法/代码,也必须再次为API所有控制器写入。
我无法在此处应用RAILS DRY 概念!
在不重复控制器代码或模型代码的情况下,在Rails中执行API功能的最佳方法是什么?
答案 0 :(得分:1)
可以如上所述完成。但我不认为它似乎是consensus。我会去创建一个单独的基本控制器,您可以执行诸如禁用禁用csrf检查之类的操作。此外,您可能会在浏览器客户端中使用大量令牌代码,您只需要在api调用中使用它。为此目的,Grape是一个很棒的宝石。
答案 1 :(得分:0)
是的,您可以使用默认的respond_to
方法进行api调用。
respond_to do |format|
format.html # show.html.erb
format.json { render json: @user }
end
另一种方法是在routes.rb
resources :clients, defaults: {format: :json}
这些是制作API的干难方法。要正确序列化json
,您可以使用ActiveModel::Serializer或jBuilder Gem。
Rails有一个专门用于创建apis的gem rails-api
。考虑使用它而不是rails