我有一个也提供API的Web应用程序。 API非常简单,所以我只是在respond_to块中处理它并在请求时返回json。现在我想版本化我的API。我在看版本主义宝石。这提到在config / routes.rb中使用api_version方法来根据API版本更改路由。我不明白这一点,因为我认为路线是相同的,但响应的行为会改变。
我的问题是,我的网页和API部分需要单独的控制器吗?另外,我需要一个单独的API命名空间吗?或者有没有办法保持现状?
答案 0 :(得分:0)
在提供API时,您需要做一些不同的事情。其中之一是能够设置API版本,以便您可以通过添加新版本来增强API,而不会破坏现有客户端。如果您的API非常简单,您可以通过提供包含该版本的第二组路由来实现此目的。你可以使用版本。但是,当您需要添加版本时,最简单的解决方案(以及将问题保持良好分离的解决方案)将保留一组单独的控制器,并使它们保持较薄,以便不会出现代码重复。这可能允许您为API使用其他宝石(例如RABL,JBuilder或rocketpants)。每个都有railscast,我建议观看它们以获得有关API构建的背景信息。