美文网首页啦啦啦啦啦!
关于RESTful的六个限制

关于RESTful的六个限制

作者: agamgn | 来源:发表于2020-01-18 09:19 被阅读0次

前言

RESTfulapi是开发中常用的概念,那什么是REST,什么又是RESTfulapi?

REST介绍

REST是Representational State Transfer的缩写
Representational :数据的表现形式(JSON、XML...)
State:当前状态或者数据
Transfer:数据传输
看字面意思还是不太懂,没关系,接着看:
标准的 REST 六个限制如下:

1.客户端-服务器

参考内容:客户端-服务器模型

  • 关注点分离
  • 服务端专注数据存储,提升简单性
  • 前端专注用户界面,提升可移植性

2.无状态

参考内容:无状态协议

  • 所有用户会话信息都保存在客户端
  • 每次请求必须包括所有信息,不能依赖上下文信息
  • 服务端不用保存会话信息,提升简单性、可靠性、可见性

3.缓存

参考内容:网页缓存

  • 所有服务端响应都要被标为可缓存或不可缓存
  • 减少前后端交互,提升了性能

4.统一的接口

统一接口约束是设计任何REST服务的基础。

  • 接口设计尽可能统一通用,提升了简单性、可见性
  • 接口与实现解耦,使前后端可以独立开发迭代

5.分层系统

参考内容:分层系统

  • 每层只知道相邻的一层,后面隐藏的就不知道了
  • 客户端不知道是和代理还是真实服务器通信
  • 其他层: 安全层,负载均衡,缓存层等

6.按需代码(可选)

参考内容:客户端脚本

  • 客户端可以下载运行服务端传来的代码(比如JS)
  • 通过减少一些功能,简化了客户端

统一的接口

上文中提到了REST的6个限制,其中统一的接口需要统一成什么样子的呢?
1.资源的标识

  • 资源是任何可以命名的事物,比如用户,评论等
  • 每个资源通过URI被唯一地标识
    2.通过表述来操作资源
  • 表述就是Representation,比如JSON,XML等
  • 客户端不能直接操作(比如SQL)服务端资源
    3.自描述的消息
  • 每个信息(请求或响应)必须提供足够的信息让接受者理解
  • 媒体类型(application/json、application/xml)
  • HTTP方法:GET(查)、POST(增)、DELETE(删)等
  • 是否缓存:Cache-Control
    4.超媒体作为应用程序状态的引擎(HATEOAS)
  • 超媒体:带文字的链接
  • 应用状态:一个网页
  • 引擎:驱动、跳转
  • 合起来:点击链接跳转到另一个网页

RESTfulapi介绍

RESTfulapi就是符合REST风格的api

RESTfulapi的设计规范

1.请求设计规范

  • URI使用名词,尽量用复数,如/users
  • URI使用嵌套表示关联关系,如/users/12/repos/5
  • 使用正确的HTTP方法,如GET/POST/PUT等
  • 不符合CRUD的情况:POST/action/子资源

2.响应式设计规范

  • 查询
  • 分页
  • 字段过滤
  • 状态码
  • 错误处理

3.安全设计规范

  • HTTPS
  • 鉴权
  • 限流

4.开发中友好设计规范

  • 文档
  • 超媒体

相关文章

  • 关于RESTful的六个限制

    前言 RESTfulapi是开发中常用的概念,那什么是REST,什么又是RESTfulapi? REST介绍 RE...

  • RESTFUL是什么以及六个限制

    rest(representational state transfer)restful 是一种风格,而不是规范;...

  • python(12)实践Django-Restful API

    关于Restful API,可阅读理解RESTful架构和RESTful API 设计指南。 在Django中要实...

  • 搭建一个简单的分布式系统(3)

    有关RESTful API的介绍,请参考这篇文章Flask REST REST的六个特性: Client-Serv...

  • Laravel框架 之 CSRF

    目录 攻击条件 跨域限制 同源策略无效的HTML标签漏洞:-GET操作资源应对:-RESTful规范漏洞:-For...

  • Authentication 认证

    OAuth 2.0 Bearer Token bearer-authentication 关于 RESTFUL A...

  • 关于 RESTful API

    另一个像MVC一样既熟悉又陌生的名词,每天挂在嘴边,却又无从描述,很多时候我们谈起REST想到的星星点点可能是类似...

  • Restful

      看了关于Restful的长篇大论,Representational State Transfer 表现层状态...

  • 关于限制

    关于限制 这两天在读史铁生的《病隙碎笔》,关于残疾与爱情,关于限制。 今天去散步的时候看到一只大型犬被关在...

  • RESTful Web服务架构标准

    脑图 目录 什么是RESTful HTTP方法 清晰的RESTful API RESTful 消息 RESTful...

网友评论

    本文标题:关于RESTful的六个限制

    本文链接:https://www.haomeiwen.com/subject/abaczctx.html