什么是REST——适合初学者的一种简单解释,第一部分:介绍

  原文地址:https://medium.com/extend/what-is-rest-a-simple-explanation-for-beginners-part-1-introduction-b4a072f8740f  

  这篇文章是解释REST基本概念的两篇文章中的第一篇。

  阅读之前,你需要:

  对什么是HTTP和API有一定了解。

  REST是一种用于API的架构风格,或是设计模式。

 

  谁发明的REST?

  REST是由计算机科学家Roy Fielding定义的。他在他2000年的Phd论文中提出了REST原则。

  

  在我们开始钻研什么能使API变得RESTful(RESTful 就是具有REST风格的意思,类似beauty和beautiful)以及你需要遵循哪些约束和原则之前,让我们先来解释两个关键的术语:

  1. 客户端——客户端就是使用API的人或者软件。它可以是一个开发者,比如说你,就可以在你自己写的程序中使用Twitter的API来从Twitter上读取和写入数据,或是创建一个新的账户等等。你的程序会调用Twitter的API。客户端也可以是web浏览器。当你访问Twitter网站时,你的浏览器就是一个客户端, 它会调用Twitter的API并使用返回的数据在屏幕上渲染信息。
  2. 资源——一个资源可以是API提供的任何东西。在Instagram的API里,资源可是是一个用户,一张照片,一个标签。每个资源都有一个唯一的标识符。标识符可以是一个名字或是一个数字。

  现在我们回到REST的讨论。

  一个RESTful的web应用以资源的形式来向外暴露信息。它也能使客户端去操作这些资源,比如创建新的资源(如创建一个用户)或是改变现有资源。(如编辑一个发布)。

  为了让你的API变得RESTful,你必须在编写API时去遵循一些规则。REST规则能使你的API更易于使用,也更易于被发现,意思就是说使用你的API的开发者在学习如何使用时会更轻松。

  REST即 REpresentational State Transfer(表述性状态传输)。   注:representational是指具象的,写实的,与abstract抽象的是反义词。

  它的意思是当一个RESTful API被调用时,服务器会向客户端传输它请求资源的状态的表述。

  例如:当一名开发者调用了Instagram的API去获取一个特定的用户(资源),API会返回这名用户的状态,包括他的姓名,目前发表动态的数量,有多少粉丝等。

  状态的表述大多数是JSON格式的,也可以是XML或是HTML格式的。

  当你调用API是,服务器所要做的取决于两个你为服务器提供的东西:

  1. 你需要的资源的标识符。这是资源的URL,也就端点。实际上,URL就是Uniform Resource Locator(统一资源定位符)的意思。
  2. 你想让服务器在资源上所做的操作,以HTTP方法的形式,也叫动词的形式。通常的HTTP方法有 GET,POST,PUT,DELETE。

  例如:使用Twitter的RESTful API获取一个特定的Twitter用户,需要一个URL来识别那个用户和一个HTTP方法GET。

  另一个例子,如:www.twitter.com/jk_rowling 这个URL里有唯一的标识符指向Twitter上的J.K. Rowling用户,是她的用户名jk_rowling。Twitter使用用户名作为标识符,而且Twitter上的用户名确实是唯一的,不可能存在着两个用户拥有相同的用户名。

  HTTP方法GET表明我们要获得那个用户的状态。

  第二部分我们来学习6个REST约束。

 

  

  

posted @ 2018-11-20 15:50  庄浩  阅读(1384)  评论(0编辑  收藏  举报