2016-07-28 72 views
6

我有一个Rails 5应用程序,带有15K用户在Heroku上托管的ActionCable和Devise gem。许多用户建议为该网站发布移动应用程序。我想先为网站创建一个基本的移动应用程序。如何为现有的Ruby on Rails 5应用程序创建REST API?

当我谷歌,我得到的只是API的唯一指导。是否有任何教程或书籍或任何资源显示如何为现有的Rails应用程序创建REST API?

有人可以指导如何做到这一点?我如何认证用户?我如何使用实时聊天?我应该使用任何宝石?请分享如何开始和最佳做法。谢谢

+0

您可以创建正常的控制器,但只返回json或除HTML之外的其他格式。那么Ehat是个问题? –

+0

这个问题http://stackoverflow.com/documentation –

回答

3

您可以使用grape宝石。看看它的Rails integration section

既然你已经到位部分航线,只要拿起你的API未使用的根路径有装载:

mount Twitter::API => '/api' 
2

有没有表现出任何的教程或书籍,或任何资源如何为现有的Rails应用程序创建一个REST API?

是的。这是非常有帮助的。他经历了如何为已经运行的(尽管非常简单)的Rails应用程序设置一个restful API的基本部分。

这是一个数岁,但还是应该为Rails工作5

0

我会建议你开始寻找JSON响应,Rails中你有一切你需要创建一个Web应用程序和使用API相同的控制器。 您需要从JSON的'respond_to'开始。 要开始玩耍,请使用scaffold生成控制器,它将为您提供JSON和HTML的响应者。

0

可能是你可以使用activemodel serializers的宝石,它是轨道5的一部分,如果当前不使用Rails 5 API模式下,你可以添加activemodel serializers宝石到您的Gemfile

可能是这个tutorial将有助于

-1

对于Ruby on Rails的5你就可以使用一个API的应用程序:

$ rails new my_api --api

还可以更改现有的应用程序,并使其成为一个API之一,在一些文件中有一些小的改变。

对于您当前正常的Rails应用程序,您只需在当前控制器中为JSON添加respond_to即可。例如:

def index 
    @tasks = Task.all 
    respond_to :html, :json 
end 

对于用户身份验证,您可以检查Devise宝石

0

既然你想一个RESTful API与现有的Rails应用程序集成,你应该参考this guide

这是一本关于如何将Grape(如Nic Nilov提到的)与您的Rails 5应用程序集成的更加用户友好的指南。本指南假定您已经拥有现有的Rails应用程序。

希望这有助于!