吴江区住房与建设局网站,网站开发怎么对接客户,西安网站开发外包公司有,综合网站开发实训总结rest和rest ful这篇文章致力于REST#xff0c;一种塑造Web服务的架构风格#xff0c;以及IT历史上最容易被误解的概念。 这篇文章针对的是正在设计Web服务api的人#xff0c;他们没有完全了解REST的实际含义。 我想给你个主意。 这篇文章也发给了那些想知道REST意味着什么的… rest和rest ful 这篇文章致力于REST一种塑造Web服务的架构风格以及IT历史上最容易被误解的概念。 这篇文章针对的是正在设计Web服务api的人他们没有完全了解REST的实际含义。 我想给你个主意。 这篇文章也发给了那些想知道REST意味着什么的人而实际上您还没有任何线索。 是的我过去遇到过这样的人-很多人。 它没有涉及Richardson成熟度模型的细节也不会使您成为REST专家。 网路上有许多相关的指南幻灯片youtube视频博客文章书籍等等。 而不是进入细节我将在本文结尾处链接一些良好的资源。 因此让我们开始 REST的含义 代表性国家转移。 这句话不仅是REST所代表的意思还是对REST实际含义的最细微的描述。 没听懂吗 再次阅读代表性状态转移。 它不是一个标准而是一种通过其表示来描述转移某种状态的行为的方式。 让我们考虑一下 马库斯是一位农民。 他的牧场有4头猪12头鸡和3头牛。 我现在是客户端时他现在正在模拟REST api。 如果我想使用REST请求他的农场的当前状态我只是问他“状态” 马库斯回答“ 4头猪12只鸡3头牛”。 这是代表性状态转移的最简单示例。 马库斯Marcus通过代理将农场的状况移交给了我。 农场的表达很简单“ 4头猪12只鸡3头牛”。 因此让我们进入一个新的水平。 我如何告诉马库斯以REST方式向他的农场增加2头奶牛 也许告诉他“马库斯请在您的农场增加2头母牛。” 您认为这是REST吗 我们在这里通过状态表示来转移状态吗 没有 这被称为远程过程。 向场中添加2头母牛的过程。 马库斯遗憾地回答“ 400错误请求。 你什么意思” 因此让我们再试一次。 我们将如何以REST方式做到这一点 代表又是什么 那是“ 4头猪12只鸡3头牛”。 好。 因此让我们再次尝试转移表示形式... 我“马库斯……四头猪十二只鸡 请给5头牛”。 马库斯“好”。 我“马库斯……您现在的状态是什么”。 马库斯“四头猪十二只鸡五头牛”。 我“啊太好了” 看到 其实并不难它是REST。 为什么RPC是A **的痛处 那么从逻辑的角度来看为什么您会偏爱REST而不是远程过程调用 RPC 因为它使代表成为我们的唯一合同大大降低了我们沟通的复杂性。 我们不必讨论我们需要什么样的程序添加一头牛添加某种类型的动物将鸡的数量加倍移除所有的猪。 我们需要讨论的只是表示形式并使用该表示形式来实现我们想要的任何东西。 很简单不是吗 不必要的RPC复杂性根本没有帮助。 这反而增加了误解的风险这是我们不希望的。 我们不希望我们的沟通失败因为我和马库斯对程序的理解不同。 但这只是RPC正在创建的许多问题之一。 如果要使用RPC则需要设计某种结构以将过程嵌入其中。 此结构需要一个用于存储参数错误代码返回值等的位置。 我见过很多真正做到这一点的开发商和公司。 他们设计了自己的RPC结构在实现客户端和客户端-服务器交互时出现了巨大的问题。 你为什么要这样做 为什么要发明自己的RPC结构 您认为这有帮助吗 如果我想制作一个使用多种专有RPC格式的许多Web服务的应用程序怎么办 我将不得不开发这样的东西 啊… 如果您确实需要RPC请至少选择SOAP之类的标准。 不要编自己的东西 但是SOAP仍然很糟糕 但是即使RPC的标准也确实很痛苦。 好吧我必须承认使用ACID Transactions和完整的标准化服务描述语言在某些情况下SOAP并不是很糟糕。 但是SOAP产生的开销巨大且是巨大的性能杀手。 HTTP是轻量级协议。 它的标题包括您需要的任何内容。 您想要放入体内的唯一东西是一种表示形式或者甚至没有。 会话是邪恶的 您不需要会话 有人可能会说“但是我想保存顾客的购物车所以我需要那次会议” –不很不对 您无需会话即可做任何您想做的事情。 您可以将购物车的信息封装在URI中甚至可以为该购物车创建另一个资源例如“ / carts / 5235”。 在两个请求之间您希望能够关闭服务器卸载其平台和操作系统拆卸服务器硬件重新组装服务器重新安装其操作系统平台和应用程序以及还原备份而客户端甚至不会注意到。 不要强迫浏览器例如智能手机以外的客户端存储cookie。 这是不必要的复杂性我向您保证这会引起问题。 您甚至应该考虑从Web应用程序中删除有状态。 不要重塑超媒体 既然超媒体现在变得非常流行我求你不要发明自己的风格。 我们已经有很多。 有 通过Atom Link规范的超媒体例如spring-hateoas和spring-data-rest中的 。 JSON-HAL JSON-LD … 我们正在慢慢地再次达到这一点 更多资源 在本文中我仅涉及REST的优点。 这里有一些很好的资源可以使您加深了解。 关于理查森成熟度模型的福勒斯文章 超媒体的绝佳幻灯片 David Zuelke关于RESTful Web服务的演讲 REST简介GoogleDevelopers的短片 莱兹·哈兹伍德Stormpath的谈话 RESTful WebService的食谱 关于REST的伟大的德国书 参考 为什么我们的JCG合作伙伴 Gregor Riegler在“ 成为更好的开发者”博客上对REST如此重要 。 翻译自: https://www.javacodegeeks.com/2013/08/why-rest-is-so-important.htmlrest和rest ful