Ruby on rails 为web界面和API构建我的应用程序

Ruby on rails 为web界面和API构建我的应用程序,ruby-on-rails,api,Ruby On Rails,Api,我有一个web应用程序,它也提供了一个API。API相当简单,所以我只是在respond_to块中处理它,并在请求时返回json。现在我想对我的API进行版本设置。我在看版本主义者的宝石。这提到在config/routes.rb中使用api_version方法根据api版本更改路由。但我不明白这一点,因为我认为路径是相同的,但响应的行为会改变 我的问题是,我的web和API部分是否需要单独的控制器?另外,我是否需要为API提供一个单独的名称空间?或者,有没有办法保持现状?在提供API时,您可能希

我有一个web应用程序,它也提供了一个API。API相当简单,所以我只是在respond_to块中处理它,并在请求时返回json。现在我想对我的API进行版本设置。我在看版本主义者的宝石。这提到在config/routes.rb中使用api_version方法根据api版本更改路由。但我不明白这一点,因为我认为路径是相同的,但响应的行为会改变


我的问题是,我的web和API部分是否需要单独的控制器?另外,我是否需要为API提供一个单独的名称空间?或者,有没有办法保持现状?

在提供API时,您可能希望做一些不同的事情。其中之一是设置API版本的能力,这样您就可以通过添加新版本而不破坏现有客户机来增强API。如果您的API非常简单,那么您可以通过提供第二组包含该版本的路由来实现这一点。您可以使用版本管理器。但是,当您需要添加版本时,最简单的解决方案(也是将关注点很好地分开的解决方案)是保留一组单独的控制器,并使它们保持精简,这样就不会有代码重复。这可能允许您为API使用其他GEM(例如RABL、JBuilder或rocketpants)。每个页面上都有RailsCast,我建议观看它们以了解API构建的一些背景。

我最终使用了版本管理器并将我的API控制器与web控制器分离。这实际上大大简化了事情。