我在一个 RESTful 应用程序中工作,当我阅读 REST 时,我发现 REST 是一种架构风格而不是架构,但我不明白原因。感谢您的回答。
对不起,我的英语不是我的母语。
我在一个 RESTful 应用程序中工作,当我阅读 REST 时,我发现 REST 是一种架构风格而不是架构,但我不明白原因。感谢您的回答。
对不起,我的英语不是我的母语。
架构是规定性的,通常为解决方案提供蓝图,并定义核心构建块。例如,“客户端-服务器”架构定义了客户端、服务器以及这两个组件所扮演的角色。
架构风格为思考解决方案提供了一个框架——在 REST 的情况下,可通过 URL 寻址的资源的概念、用于操作这些资源的词汇表、无状态等。
这很重要,因为“这是一个客户端服务器架构”这个问题很容易回答——是否有客户端,它是否连接到服务器,每个客户端是否有明确的职责?“这是一个 RESTful 解决方案吗”这个问题更难回答——它需要您查看解决方案是否遵循 REST 的心智模型。
REST 提供了设计分布式系统的指南,主要是“超媒体”系统。这是基于罗伊菲尔丁的工作。为了明确“架构风格”和“架构”,您可以将“架构风格”视为设计“具体架构”(或具体实现)的一组原则。例如,在 REST 的情况下,您可以看到定义了几个具体的实现,例如 java 已经开发了自己的 REST 架构风格的实现:JAX-RS ( https://jax-rs-spec.java.net/,https://jax-rs-spec.java.net/nonav/2.0/apidocs/index.html)。
嗯,我不太清楚,但我认为,因为 REST 仅描述,所以应该是资源,由唯一的 URL 表示,以及它们的操作,由 HTTP 动词和请求数据表示。但是数据格式,是否是资源对象 - 开发人员的决定。
也许,甚至 HTTP 也不是必需的。
我不知道为什么 REST 被称为“架构风格”。对我来说,REST 只是一种用于进行同步调用的协议(在大多数情况下)。在程序中,您仍然有基于操作的方法(如 getAccount、transferAmount、createUser 等)。所有这些方法都可以使用 REST 实现。或肥皂。或其他一些协议。他们都假设了一些数据模型。
所以,在我看来,REST 既不是架构风格也不是架构。
软件架构包含架构风格;软件架构是架构风格的一部分
架构风格定义:根据结构组织模式的系统家族;组件和连接器的词汇表,限制了它们如何组合。 [33]
架构风格是设计决策和约束的可重用“包”,应用于架构以诱导选择的理想品质
软件架构风格和模式列表
客户端-服务器(2-tier、3-tier、n-tier,云计算呈现这种风格)
无共享架构
基于空间的架构
对象请求代理
点对点
表征状态转移 (REST)
REST 原则,例如客户端-服务器架构、无状态、可缓存性、使用分层系统、支持按需代码以及使用统一接口。必须遵循这些原则才能将系统归类为 RESTful。另一个例子 是客户端-服务器架构层不同于REST API 架构风格 /layers 这在 2000 年发生了变化,当时人们认识到 Web API 的真正潜力:由 Roy Fielding 领导的一组专家发明了 REST,并永远改变了 API 格局。声明的目的只是创建一个标准,允许两台服务器在世界任何地方通信和交换数据。2017 年 1 月 26 日
REST API 的历史 - Mobapi
传统的客户端服务器架构
https://en.wikipedia.org/wiki/Client%E2%80%93server_model
https://en.wikipedia.org/wiki/Representational_state_transfer
https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns https://en.wikipedia.org/wiki/Software_architecture
https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013 https://phoenixnap.com/kb/soap-vs-rest https://javarevisited.blogspot.com/ 2015/08/difference-between-soap-and-restfull-webservice-java.html https://www.upwork.com/resources/soap-vs-rest-a-look-at-two-different-api-styles 3 层客户端服务器架构 https://www.researchgate.net/figure/3-tier-client-server-architecture-example_fig11_215835792 https://www.youtube.com/watch?v=jJYv-nfkMXk https://devdotcode .com/what-is-restful-api/ https://robert-drummond.com/2013/05/08/how-to-build-a-restful-web-api-on-a-raspberry-pi-in -javascript/ https://medium.com/bgl-tech/how-to-make-your-first-get-api-call-in-c-net-core-501134ee6e19 https://www.fiverr.com/sfrancy/make-restful-api-server https://mobapi.com/history-of-rest-apis/#:~:text=This%20changed%20in%202000%20when ,数据%20anywhere%20in%20the%20world。 https://cio-wiki.org/wiki/Client_Server_Architecture 客户端服务器架构的优缺点 https://blog.api.rakuten.net/graphql-vs-rest/ https://i.stack.imgur.com /AhXTw.png