什么是REST

212 阅读5分钟

What is REST

REST简介

REST这个词适用于表示状态的转移。它是一种架构风格,规定了网络服务开发的规则集合。REST建议在客户端-服务器的对应关系中用客户端要求的数据生成一个实体,并将对象的值作为响应提交给用户。例如,如果用户要求在班加罗尔的某个地点和时间看一场电影,你可以在服务器端建立一个对象。所以你在这边有一个实体,并提交一个对象状态。这就是为什么REST被称为成员的状态转换。REST的架构风格有助于最大限度地减少带宽的使用,以创建一个更适合互联网的应用程序。它也被认为是 "互联网的语言",完全基于资源。

为什么我们要使用REST API?

考虑一下提交Book My Exhibit的情景。现在,很明显,需要大量的输入数据,因为应用程序中的数据从来不是静态的。要么是频繁的电影,要么是各种城镇在不同时间段放映不同语言的电影。事实上,在这些系统中,数据是不断发展的,从来不是静止的。好吧,这些数据是从服务器或数据库服务器上接收的。

客户端使用API在服务器上询问正确的细节,然后发送一个客户端响应。在这种情况下,发送到客户端的响应是一个HTML网页。但你认为这是一个提交申请的适当的响应吗?好吧,我想你会说NO。你想返回数据,而不是使用整个网页的标准化格式。然后,服务器返回的数据要么是XML格式,要么是JSON格式,以响应客户的请求,达到这些目的。正确的分层数据结构在XML和JSON格式中都有提供。

REST架构的制约因素

下面提到了rest架构的不同约束。

1.客户端-服务器

客户端和服务器之间的接口将隔离客户端。例如,没有内部存储安排的关注点分工,以增加每个服务器的消费者数据代码的可移植性。例如,服务器接口或用户状态不与应用程序联系,以促进和可扩展的服务。在接口被修改之前,服务器和客户端都是自主替换和建立的。

2.无状态

无状态意味着在未来的请求和响应之间,运行状态不会继续。这意味着程序本身包括处理请求所需的状态。它可以是一个参数、对象或作为URI一部分的查询字符串的头。URI定义了该单元的资源和条件(或状态变化)。在服务器执行了所需的状态或状态片后,问题由头、状态和响应体返回给客户端。

3.可缓存

客户端会在万维网上缓存答案。然后,响应被明确地描述为不可接受的,以阻止消费者用额外的请求重复不正确地对待停滞的数据。控制良好的缓存可以防止客户端和服务器之间的这种连接,以提高可扩展性和性能。

4.统一界面

统一用户界面描述了客户端-服务器界面。使得所有件的创建的架构被浓缩和分解了。统一界面有四个基本概念。

  • **基于资源。**URI是一种资源标识,用于对人力资源进行分类。资源本身与客户的表述不同。例如,服务器可以不提交数据库,但根据服务器的要求,和安装的具体情况,包括某些以XML、HTML或JSON表示的数据库记录。
  • 自我描述的消息。每个消息中的细节足以解释消息的处理方式。例如,Intermedia类型可以指定解析器。
  • 对有表示的资源的行动。当客户端有一个资源的表示,并附有元数据,那么就可以通过权限从服务器上定制、修改或删除该资源,这很方便。
  • 超媒体作为应用状态的引擎(HATEOAS)。客户端通过正文内容、请求头、查询字符串参数和请求的URL来传递状态。而服务通过主体内容、响应头、响应代码等将状态传递给客户。

5.分层系统

顾名思义,分层结构由各层组成,每层都有特定的作用和责任。如果我们想到一个模型视图控制器的结构,每一层都有自己的特点,有数据如何创建的模型,控制器对传入活动的重视,以及输出的视图。各层都是人,但它们之间也是相互沟通的。在REST API架构中,同样的概念也是有效的,各个架构层合作建立了一个层次结构,有助于使应用程序更具可扩展性和模块化。

6.按需编码

按需编码是6个限制中最不为人所知的,也是唯一的可选限制,允许程序通过API传输代码或小程序。从本质上讲,它产生了一个有洞察力的应用程序,不再完全依赖自己的代码框架。然而,也许是因为 "按需技术 "领先于时代,我们在实施它时遇到了困难,几种语言的网络API被消耗,技术转换引发了安全问题。

结论

这是一个关于什么是REST的指南。在这里,我们详细讨论了什么是REST,对REST的需求,以及REST架构的特点。你也可以看看下面的文章,以了解更多 --

  1. Python Rest Server
  2. 服务器监控工具
  3. 什么是服务器?
  4. 服务器虚拟化

The postWhat is RESTappeared first onEDUCBA.