使用ASP.NET Core 3.x 构建 RESTful API - 2. 什么是RESTful API
1. 使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作
什么是REST
REST一词最早是在2000年,由Roy Fielding在他的博士论文《Architectural Styles and the Design of Network-based Software Architecture》中提出的。他在本文中创造了REST这个术语。这篇论文的地址是:https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm。
REST的全称是 Representational State Transfer(状态表述转换)。这个词表面看起来可能不太好理解。但其实REST就是勾画出了这样一幅景象,它描述了Web应用到底怎么样设计才算是优良的。这里定义了以下三点:
-
一组网页的网络(一个虚拟状态机);
-
在这些网页上,用户可以通过点击链接来前进(状态转换);
-
点击链接的结果就是下一个网页(表示程序的下一个状态)被传输到用户那里,并渲染好给用户使用。
论文中还提到,REST是一种为分布式超媒体系统所用的架构风格,也就是说,REST定义了一种架构风格来帮助创建和组织出更好的分布式系统。这里的关键词是架构风格。
概括的说:
-
REST是一种架构风格,而不是规范或标准;
-
REST需要使用一些规范、协议或标准来实现这种架构风格;
-
REST与协议无关。JSON并不是REST强制的,甚至HTTP都不是REST强制使用的,但这也仅仅是从理论上来看。
REST背后的主要思想就是:采用RESTful架构风格进行组织的分布式系统,将在以下几个方面得到改善:
-
性能。REST的通信风格应该是简单并且高效的,采用它的系统性能应该得以提升。
-
组件交互的可扩展性。其实任何分布式系统都允许这种扩展性,而REST所提出的简单交互方式更是如此。
-
组件的可修改性。分布式系统的分布式本质和REST提出的关注点分离,使得组件得以以最小的成本和最低的风险彼此独立的进行修改。
-
可移植性。REST与技术和语言无关,所以使用任何技术都可以实现REST。