ruby-on-rails - 什么是理解 RESTful 及其含义的简明方式?

标签 ruby-on-rails rest

**更新:万岁!所以这是一个实践和理解的旅程。 ;) 现在我不再觉得自己那么笨了。*

我阅读了很多关于 REST 的文章,并编写了几个使用 RESTful 资源的 Rails 应用程序。但是,我从来没有真正觉得我完全理解它是什么,以及 RESTful 和非 RESTful 之间的区别。我也很难向人们解释为什么/何时应该使用它。

如果有人对 REST 以及何时/为什么/在何处使用它(以及何时不使用)找到了非常清晰的解释,如果你能提出来,这将使世界受益,谢谢! =)

最佳答案

REST 通常是这样学习的:

  • 你听说 REST 是 以应有的方式使用 HTTP ,因此您会避开 SOAP Web 服务的信封,因为许多 SOAP 标准所需的大部分内容都是由 HTTP 以简单、严肃的方式处理的。您也很快了解到您需要使用 正确操作的正确方法 .
  • 后来,也许是几年后,你会听到 REST 不止于此 . REST其实也是的概念资源之间的链接 .这通常需要一段时间才能理解其全部含义,但是当您了解这一点时,您会开始在响应中引入超链接,以便客户端可以导航您的系统,而无需耦合到服务器想要如何命名其资源(即 URI)。
  • 甚至后来,你发现你仍然没有理解 REST!这是因为你发现 媒体类型很重要 .您开始制作名为 application/vnd.example.foo+json 的媒体类型并在其中添加超链接,因为这已经是您对 REST 的理解。
  • 多年过去了,你无数次重读菲尔丁的论文,看看有没有遗漏的地方,你突然意识到 HATEOAS 约束的真正含义是:客户端不知道服务器的资源如何结构化,但它会在运行时发现这些关系。这也意味着用户面前的屏幕完全由通过电线的东西驱动 ,所以事实上,如果服务器传递图像/jpeg,那么这就是您应该向用户显示的内容,而不是错误消息说“AtomProcessor 无法处理图像/jpeg”。

  • 我刚刚接受了#4,我希望梯子不会再长了!我花了七年时间。

    关于ruby-on-rails - 什么是理解 RESTful 及其含义的简明方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543075/

    相关文章:

    ruby-on-rails - VCR:创建第二个磁带时为 "There is currently no cassette in use."

    ruby-on-rails - 从数据库获取用户时区分 User 和 rails 中的用户

    java - 类似于 Spring 的 Jersey 的 @ModelAttribute

    java - 未使用自定义 HTTP 消息转换器,415 媒体类型不受支持

    python - 有没有办法从资源中获取flask_restful中的完整url

    php - 在 Slim 框架中创建基本身份验证

    javascript - 当部分包含 Rails 辅助方法(例如 link_to)时,为什么插入 <div><%= render 'my_partial' %></div> w/Coffeescript 会引发错误?

    ruby-on-rails - 如何设置 rails 请求超时时间更长?

    android - 在 Rails 中处理来自 Android 的 JSON 数组

    c# - 使用 JsonProperty 将 JSON 绑定(bind)到模型属性