【问题标题】:Rails REST API PracticesRails REST API 实践
【发布时间】:2016-07-02 06:17:10
【问题描述】:

关于在 Rails 中创建 REST API,我遇到了两种情况,我想知道哪种情况更受欢迎。通常 如果您知道在开始时需要为您的应用程序提供 REST API。将它放在命名空间中并因此复制控制器逻辑是否有意义?

我见过一些例子,人们已经有了一个应用程序,后来又发现他们需要扩展并提供一个 REST API。解决此问题的方法是使用 namespacein routes.rbcontrollers/api/whatever... 创建新路由。虽然这仍然会产生重复的代码,但可能是更明智的方法。区别在于 REST API 调用的无状态机器。

谁能详细说明首选方法,谢谢。

【问题讨论】:

    标签: ruby-on-rails rest


    【解决方案1】:

    如果您创建一个 Rails 应用程序,并遵循通常的约定,您基本上会得到一个 REST API。除非您在谈论该术语的更具体含义(我不知道),否则“REST API”更像是 API 的一堆一般特征(即,如果使用 HTTP,则无状态、基于资源的 URI、等等)。

    所以把问题转回给您:您认为(传统)Rails 应用程序在哪些情况下不是通过扩展而成为微不足道的 REST API?

    【讨论】:

    • 好吧,在普通应用程序的情况下,您可以在 BaseController 中设置 CSRF 令牌,但是如果您希望公开 API 并对这些操作进行操作,则应该禁用它,(同样,不是通过Web 应用程序 gui)。如何解决这个问题并禁用 CSRF,但在同一控制器中的“正常”情况下启用它?
    • 要禁用 CSRF,请参阅 api.rubyonrails.org/classes/ActionController/… 。只有在浏览器(非 API)环境中,您才能使用 :with 选项引发异常。见stackoverflow.com/questions/10741339/…
    • 谢谢,但我真的不知道如何用它来解决我的问题。
    猜你喜欢
    • 2013-10-23
    • 2020-05-29
    • 1970-01-01
    • 2018-04-27
    • 2018-05-25
    • 2020-04-23
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多