我们可以使用Rails的默认控制器的移动API请求?
我有Rails应用程序,我想在我的android手机中使用CRUD功能。
Rails在所有控制器中都提供了默认的respond_to动作(html,json,xml..etc)。 我一直在为Android开发移动应用程序。 我想在我的移动Rails应用程序中执行CRUD操作。 我们可以使用此默认respond_to进行API调用吗?
如果我们为API提供单独的命名空间,在默认的所有控制器中编写相同的方法/代码,则必须再次为API所有控制器编写代码。
我无法在这里应用RAILS DRY概念!
在不重复控制器代码或模型代码的情况下,在Rails中执行API功能的最佳方式是什么?
它可以按照上面所述完成。 但我不会认为这似乎是共识。 我会去头,并创建一个单独的基本控制器,你可以做一些事情,如禁用禁用CSRF检查。 此外,您可能会在浏览器客户端中使用很多令牌代码,您只需在api调用中使用代码代码。 为此目的,葡萄是一个伟大的宝石。
是的,您可以使用默认的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}
这些是DRY制作API的方式。 要正确序列化json
,你可以使用ActiveModel :: Serializer或jBuilder Gem。
Rails有专门用于创建apis的特殊的gem rails-api
。 考虑使用,而不是铁轨
上一篇: Can we use Rails default controller for Mobile API request?