尼玛,谁听得懂“表现层状态转移”,这是人话吗?...从原理角度来分析: 根据Richardson Maturity Model(理查德森成熟度模型), REST架构的成熟度有4个等级: Level 0 – 面向前台 我们在咖啡店向前台点了一杯拿铁...所以,做到了Level2,也就是面向资源和使用Http动词,就已经很Restful了。...RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。...“资源”是REST架构或者说整个网络处理的核心。 URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
其实网上 RESTful 的文章有挺多的,不过有些讲的糊里糊涂的,而且很大部分都忽略了 HATEOAS。 在之前的面试中面试官就问过我,你怎么理解 RESTful 的,英文全称是啥?...REST 的核心 核心就是资源,用 URL 定位资源,用 HTTP 动词来描述所要做的操作。 HTTP的提供了很多动词:GET、PUT、POST、DELETE...... 这些动词都是有含义的。...可以看到 HTTP 的动词其实就能指代你要对资源做的操作,所以不需要在 URL 上做一些东西,就把 URL 表明的东西看作一个资源即可。...(对协议不理解的看我之前的 HTTP 分析) 所以协议约定了很多东西,推荐我们按照协议的用法进行客户端和服务端的交互。...简而言之,RESTful 就是不要在 URL 上表现出动作,用 HTTP 动词代表动作,URL 上只做资源。 仅此而已。
此外,本文还提供了额外的资源,对每个主题进行了更深入的探讨。 1. 简介 REST 架构风格不是一种可以购买的技术,也不是一个可以添加到软件开发项目中的开发库。...由于 Web 对消费者偏好有多重影响,REST 风格的倡导者鼓励企业组织在其边界内使用相同原则,就像他们在面向外部客户的网页上做的那样。本文将讨论现代 REST Web 实现中的基本约束和属性。...4.4 DELETE 在公共网络上 DELETE 动词没有被广泛使用(谢天谢地!)。然而,对于控制信息空间非常有用,它是资源生命周期中非常有用的一部分。 DELETE 请求意在实现等幂。...响应码 HTTP 响应码为我们在客户端和服务器之间的对话提供了丰富的请求状态信息。大多数人只熟悉一般意义上的200、403、404或者500,但是还有更多有用的代码可供使用。...网址:http://www.ietf.org/rfc/rfc1738.txt 5.1.2.3 IRI 国际化资源标识符(IRI)在概念上是一个用 Unicode 编码的 URI,用于在 Web 上使用的标识符中支持世界上各种语言的字符
有关REST和RPC的讨论或争论一直活跃在各个技术角落,最近也关注了不少,看了很多人的看法之后,我意识到这个问题可以帮助我照亮自己的知识死角:为什么我喜欢REST的请求风格(资源导向)比RPC(操作导向...上面这个表格中只是展示了RPC和REST API中常用的几个HTTP动词 RPC: 一个基于操作的请求风格 RPC首字母缩略词有很多含义,远程过程调用(Remote Procedure Call)也有很多的形式...就我目前所知,对于这种风格基本上没什么明确的约定和规则。 端点(或叫资源)包含要调用的操作的名称。 这种风格的API基本上只使用两个http动词,那就是你熟悉的GET和POST。...为了聚焦本文的主题,我们长话短说:使用REST API,你是将数据作为资源(resource),你通过HTTP协议使用正确的HTTP动词操作,注意,是正确的动词: 端点上包含你要操作的资源。...使用REST,语义依赖主要依赖于HTTP动词。 动词的语义是全局共享的,约定好的。
此外,本文还提供了额外的资源,对每个主题进行了更深入的探讨。 关键词:Rest 架构 1. 简介 REST 架构风格不是一种可以购买的技术,也不是一个可以添加到软件开发项目中的开发库。...由于 Web 对消费者偏好有多重影响,REST 风格的倡导者鼓励企业组织在其边界内使用相同原则,就像他们在面向外部客户的网页上做的那样。本文将讨论现代 REST Web 实现中的基本约束和属性。...4.4 DELETE 在公共网络上 DELETE 动词没有被广泛使用(谢天谢地!)。然而,对于控制信息空间非常有用,它是资源生命周期中非常有用的一部分。 DELETE 请求意在实现等幂。...响应码 HTTP 响应码为我们在客户端和服务器之间的对话提供了丰富的请求状态信息。大多数人只熟悉一般意义上的200、403、404或者500,但是还有更多有用的代码可供使用。...网址:http://www.ietf.org/rfc/rfc1738.txt 5.1.2.3 IRI 国际化资源标识符(IRI)在概念上是一个用 Unicode 编码的 URI,用于在 Web 上使用的标识符中支持世界上各种语言的字符
通过 REST 可以实现系统的高性能、可伸缩、通用性、简单性、可修改性和可扩展等特性。这篇文章解释了主要的 HTTP 操作,对 HTTP 响应码进行描述,并列举相关开发库和框架。...此外,本文还提供了额外的资源,对每个主题进行了更深入的探讨。 1. 简介 REST 架构风格不是一种可以购买的技术,也不是一个可以添加到软件开发项目中的开发库。...由于 Web 对消费者偏好有多重影响,REST 风格的倡导者鼓励企业组织在其边界内使用相同原则,就像他们在面向外部客户的网页上做的那样。本文将讨论现代 REST Web 实现中的基本约束和属性。...4.4 DELETE 在公共网络上 DELETE 动词没有被广泛使用(谢天谢地!)。然而,对于控制信息空间非常有用,它是资源生命周期中非常有用的一部分。 DELETE 请求意在实现等幂。...响应码 HTTP 响应码为我们在客户端和服务器之间的对话提供了丰富的请求状态信息。大多数人只熟悉一般意义上的200、403、404或者500,但是还有更多有用的代码可供使用。
在周三的测试运维试听课程中,芒果给大家介绍了RESTful架构以及RESTful API开发-Django REST Framework,这里我们来做个小总结。 什么是REST 什么是REST?...State Transfer 状态转移:访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。...这里另外再补充一个概念: 要让网络上的一个实体成为资源,要求这个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是URI(Uniform Resource Identifier)。...URI既可以看成是资源的地址,也可以看成是资源的名称。 RESTful架构 那么什么又是RESTful架构呢? 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。...动词通常就是刚刚提到的HTTP 方法,对应 CRUD 操作。 宾语必须是名词:宾语就是 API 的 URL,是 HTTP 动词作用的对象。它应该是名词,不能是动词。
他参与设计了HTTP协议,也是Apache Web Server项目(可惜现在已经是 Nginx 的天下)的co-founder。...: CHAPTER 5: Representational State Transfer (REST) 1.2 名称 Fielding将他对互联网软件的架构原则,定名为REST ,即Representational...将网络上的信息实体看作是资源,比如可以是: 文本 图片 服务 音频 … 标识 资源用URI统一标识,URI只使用名词来指定资源,原则上不使用动词,因为它们是资源的标识。...REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口)。 Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。...“资源”是REST架构或者说整个网络处理的核心。
这些格式可以定义在 HTTP header 里面: Content-Type:定义了请求格式 Accept:定义了接收相应的格式列表 使用 HATEOAS 约束 HATEOAS(Hypermedia as...the engine of application state)是 REST 架构风格中最复杂的约束,也是构建成熟 REST 服务的核心。...在介绍 HATEOAS 之前,先介绍一下 Richardson 提出的 REST 成熟度模型。...该模型把 REST 服务按照成熟度划分成 4 个层次: 第一个层次(Level 0)的 Web 服务只是使用 HTTP 作为传输方式,实际上只是远程方法调用(RPC)的一种具体形式。...正确用法如下: /blog/api/v1 充分使用 HTTP 状态码来处理错误 HTTP状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的3位数字代码。
我对这个词组的翻译是"表现层状态转化"。 如果一个架构符合REST原则,就称它为RESTful架构。...如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。 三、资源(Resources) REST的名称"表现层状态转化"中,省略了主语。"...而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。 客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。...七、误区 RESTful架构有一些典型的设计误区。 最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。...版本号可以在HTTP请求头信息的Accept字段中进行区分(参见Versioning REST Services): Accept: vnd.example-com.foo+json; version
但是,我主要接触的是REST,这是一种基于资源的API和Web服务开发架构风格。在我的职业生涯中有很大一部分时间都参与了构建、设计和使用API 的项目。...但是,我也曾遇到过一些让 REST 蒙羞的 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致的模式、插入端点中动词......因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....Mozilla Developer Network文档上关于HTTP概述是一个相当全面的参考资料,尽管如此,在REST API设计方面,以下是将HTTP应用于RESTful设计的简要说明: HTTP具有动词...不要在 URI 中使用动词 到目前为止,如果您已经理解了基本概念,那么您会开始意识到在URI中放置动词是不符合RESTful的,这是因为HTTP动词应该足以准确描述正在对资源执行的操作。
Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。...用HTTP协议里的动词来实现资源的添加,修改,删除等操作。...比如: DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id) POST http://api.qc.com/v1/friends...动词、HTTP状态码、HTTP报头等等。...怎么用RESTful 1、每个资源使用2个URL,网址中只能有名词 2、对于资源的操作类型由HTTP动词来表示 3、统一的返回结果 4、返回正确的状态码 5、允许通过HTTP内容协商,建议格式预定义为JSON
,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。...REST的三角架构(摘自 Restful User Experience ) REST 是以 资源 为中心, 名词即资源的地址, 动词即施加于名词上的一些有限操作, 表达是对各种资源形态的抽象....REST 简化了客户端和服务器的实现。 在 RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。...而且也仅支持HTTP协议,规定了使用HTTP Method表达本次要做的动作,类型一般也不超过那四五种。这些动作表达了对资源仅有的几种转化方式。...成熟度上:SOAP在成熟度上优于REST 效率和易用性上:REST更胜一筹 安全性上:SOAP安全性高于REST,因为REST更关注的是效率和性能问题 总体上,因为REST模式的Web服务与复杂的SOAP
Rest概述 简介 REST是英文Representational State Transfer(表现层状态转化),Rest是web服务的一种架构风格; 使用HTTP,URI、XML、JSON、HTML...Rest原则 网络上的所有事物都可以被抽象为资源(resource)。 每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识 所有的操作都是无状态的。...设计思想 REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理。...因此设计web接口的时候,REST主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型(GET,PUT,POST,DELETE)来区分...后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口。
REST是一种架构风格,它将每个服务对待为资源并通过Http协议方法(GET、POST、PUT、DELETE)获取数据。 REST风格的架构包含客户端和服务端。...REST不是一个协议而是一种架构风格。 比如:基于资源的架构。 SOAP 提供了无状态和有状态的两种实现方式。 REST 是无状态的。...基于HTTP并且容易定义,以REST方式公开和使用。 它是轻量级的架构,适用于有限带宽的设备,如智能手机。 开源。 Q6....WEB API 一种新的框架提供了简易的方式用来搭建HTTP services。 WEB API是一个开源的理想的平台在.NET Framework上搭建REST-ful services。...action,除非action上指定了特定的路由。
如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。 三、资源(Resources) REST的名称"表现层状态转化"中,省略了主语。"...七、误区 RESTful架构有一些典型的设计误区。 最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。 ...版本号可以在HTTP请求头信息的Accept字段中进行区分(参见Versioning REST Services): Accept: vnd.example-com.foo+json; version...在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。...常用的HTTP动词有下面五个(括号里是对应的SQL命令)。 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。
如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。 三、资源(Resources) REST的名称"表现层状态转化"中,省略了主语。"...而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。 客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。...七、误区 RESTful架构有一些典型的设计误区。 最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。 ...在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。...常用的HTTP动词有下面五个(括号里是对应的SQL命令)。 GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。
领取专属 10元无门槛券
手把手带您无忧上云