RESTful 统一接口

QuibblerQuibbler 2021-03-11 约 4 分钟 1994 次阅读

RESTful 统一接口

REST全称Representational State Transfer,中文意思是表述性状态转移,第一次出现在Roy Fielding的博士论文中。原文已找到,前往膜拜:Representational State Transfer。

1、REST指导原则

REST是一组体系结构约束,不是协议或标准。服务端API需要符合以下条件才能被认为是RESTful。参考Guiding Principles of REST。

①客户端:服务器–通过将用户界面问题与数据存储问题分开,我们提高了用户界面在多个平台上的可移植性,并通过简化服务器组件来提高可伸缩性。

②无状态:从客户端到服务器的每个请求都必须包含理解该请求所需的所有信息,并且不能利用服务器上任何已存储的上下文。因此,会话状态完全保留在客户端上。

③可缓存:缓存约束要求对请求的响应中的数据被隐式或显式标记为可缓存或不可缓存。如果响应是可缓存的,则授予客户端缓存以将响应数据重新用于以后的等效请求的权限。

④统一的接口:通过将通用的软件工程原理应用于组件接口,简化了整个系统架构,并提高了交互的可见性。为了获得统一的接口,需要多个体系结构约束来指导组件的行为。REST由四个接口约束定义:资源标识;通过表述操纵资源;自我描述的信息;并且,超媒体作为应用程序状态的引擎。

⑤分层系统:分层系统样式允许通过限制组件的行为来使体系结构由层次结构层组成,从而使每个组件都无法“看到”与它们交互的直接层之外的内容。

⑥按需代码(可选): REST允许通过以applet或脚本的形式下载并执行代码来扩展客户端功能。通过减少预先实现的功能数量,简化了客户端。

2、统一接口

RESTful架构的核心规范就是统一接口,统一接口有四个子约束:

        ①资源标识

        ②通过表述操纵资源

        ③消息的自描述性

        ④超媒体作为应用程序状态的引擎

2.1、幂等性和安全性

Roy Fielding不仅第一个提出REST,还参与了HTTP 1.1标准规范的撰写。HTTP 1.1协议定义了统一接口中的6个标准HTTP方法:GET、POST、PUT、DELETE、HEAD、OPTIONS。API接口按照这些标准的HTTP方法操作资源,接口将具有幂等性和安全性。

①幂等性:无论请求多少次,请求到的资源状态都是一样的。

②安全性:无论请求多少次,都不会改变服务端资源的状态。

2.2、接口一览

根据网上各种资料汇总,常见HTTP方法见下表:


最常用的还是前面个方法:GET和POST,客户端借助OkHttp库可以轻松完成网络请求,详见OkHttp的基本用法。

相关资料:

        REST APIs must be hypertext-driven -- Roy T. Fielding

        Representational State Transfer

        Wikipedia : Representational state transfer

        REST API Tutorial

        RESTful 架构详解

        RESTful API 设计指南

        

相关推荐

Honeycam 最好的GIF动图软件
精选分享

Honeycam 最好的GIF动图软件

Honeycam 最好的GIF动图软件推荐一款Gif制作软件:Honeycam,是一款高质量的GIF动图制作和编辑器。以前将视频转GIF,录制屏幕动图要费很大功夫,这款软件真的非常简洁好用,值得收藏,博客上的GIF都是用Honeycam录制的。官网:Honeycam1、简洁的界面下载安装完成后打开,主界面很简洁。2、录制屏幕选择录制,调整好要录制的区域录制完成后,可以编辑每个帧,调整帧时长,删除多

2.6k
国内开源镜像站点
精选分享

国内开源镜像站点

国内开源镜像站点开源,(Open Source)全称为开放源代码。开源就是要用户利用源代码在其基础上修改和学习的,但开源系统同样也有版权,同样也受到法律保护。国内的高校和一些企业也建立了开源镜像站点,支持开源。从开源站点上面可以下载很多开源资源(Android源码),上大学的时候就在这些镜像网站上下载Linux发行版、Qt等软件。 清华大学:http://mirrors.tuna.tsinghua

2.6k
牛人快跑:Boss 直聘自动化求职工具
置顶 精选分享

牛人快跑:Boss 直聘自动化求职工具

找工作最难熬的不是面试,而是投递期的无意义消耗:同一句打招呼发两百遍,眼睛还要替平台把关——筛掉皮包公司、跳过半年不登录的招聘方、避开挂羊头卖狗肉的僵尸职位。牛人快跑 GeekGeekRunhttps://github.…

160