Ruby on rails Rails REST API实践

Ruby on rails Rails REST API实践,ruby-on-rails,rest,Ruby On Rails,Rest,关于在Rails中创建RESTAPI,我遇到了两种情况,我想知道哪种情况更可取。通常 如果您知道需要在开始时为应用程序提供RESTAPI。将它放在名称空间中,从而复制控制器逻辑有意义吗 我见过一些例子,其中人们已经有了一个应用程序,后来他们认为他们需要扩展并提供一个RESTAPI。解决这一问题的方法是在routes.rb和controllers/api/任何…中使用名称空间创建新路由。这仍然会产生重复的代码,但可能是更明智的方法。区别在于RESTAPI调用是无状态的机器 有人能详细介绍一下首选的

关于在Rails中创建RESTAPI,我遇到了两种情况,我想知道哪种情况更可取。通常 如果您知道需要在开始时为应用程序提供RESTAPI。将它放在名称空间中,从而复制控制器逻辑有意义吗

我见过一些例子,其中人们已经有了一个应用程序,后来他们认为他们需要扩展并提供一个RESTAPI。解决这一问题的方法是在
routes.rb
controllers/api/任何…
中使用
名称空间创建新路由。这仍然会产生重复的代码,但可能是更明智的方法。区别在于RESTAPI调用是无状态的机器


有人能详细介绍一下首选的方法吗,谢谢。

如果您创建了一个Rails应用程序,并遵循通常的惯例,那么您基本上会得到一个RESTAPI。除非您谈论的是术语的更具体含义(我不知道),“REST API”更多的是API的一系列一般特征(例如,无状态、使用HTTP时基于资源的URI等)


因此,让问题回到您的身边:您在考虑哪种情况下(传统)Rails应用程序不是通过扩展而成为REST API?

对于普通应用程序,您在BaseController中设置了CSRF令牌,但是如果您希望公开API并对这些操作进行操作,则应该禁用该令牌,(同样,不是通过web应用程序gui)。如何解决此问题并禁用CSRF,但在同一控制器中的“正常”情况下如何启用它?要禁用CSRF,请参阅。您可以使用
:with
选项,仅当您在浏览器(非API)中时才引发异常环境。看。谢谢。但我真的不知道如何用它来解决我的问题。