IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 我理解的RESTful设计风格 -> 正文阅读

[网络协议]我理解的RESTful设计风格

名词解释
REST – REpresentational State Transfer
通俗来讲就是:资源在网络中以某种表现形式进行状态转移。
分解开来:
Resource:资源,即数据。
Representational:某种表现形式,比如用JSON,XML,JPEG等;
State Transfer:状态变化。通过HTTP动词实现。
八个原则
1.协议:-http/https,编程所遵循的那个协议。

2.域名:(在域名中体现API字样,体现是前后端交互的接口,方便同事阅读和修改)
有两种方式:
①https://api.csdn.com在购买域名中,购买带api的。
②https://csdn.com/api/在域名后添加路径。
第二种更为省钱和常用。

3.版本

版本需要跟新,统一的规范为https://api.csdn.com/v1/其中v几就代表第几代版本。

4.路径(路径中避免使用动词,资源用名词来表示)如:https://api.csdn.com/v1/users表示第一个版本下人的用户

5.HTTP动词语义

GET (SELECT):从服务器取出资源(一项或多项)。

POST (CREATE):在服务器新建一个资源。

PUT (UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

PATCH (UPDATE):在服务器更新资源(客户端提供改变的属性)。

DELETE (DELETE) :从服务器删除资源。

实例:

GET /Companies:列出所有公司。

POST /Companies:新建一个公司。

GET/Companies/ID:获取某个指定公司的信息。

PUT /Companies/ID:更新某个指定公司的信息(提供该公司的全部信息)。

PATCH /Companies/ID:更新某个指定公司的信息(提供该公司的部分信息)。

DELETE/Companies/ID:删除某个公司。

GET /Companies/ID/users:列出某个指定公司的所有员工。

DELETE /Companies/ID/users/ID:删除某个指定公司的指定员工。

PUT是更新整个,而PATCH是跟新指定的,单个的。
6.巧用查询字符串
实例:

?limit=10:指定返回记录的数量。

?offset=10:指定返回记录的开始位置。

?page=2&per_page=100:指定第几页,以及每页的记录数。

?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

?type_id=1∶指定筛选条件。

7.状态码
①用HTTP响应码表达此次请求结果。
实例:

200 OK -[GET]:服务器成功返回用户请求的数据。

201 CREATED - [ POST/PUT/PATCH]:用户新建或修改数据成功。

202 Accepted - [ *]∶表示一个请求已经进入后台排队(异步任务)

204 No CONTENT -[ DELETE]:用户删除数据成功。

400 INvaLID REQUEST - [ POST/PUT/PATCH ]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

401 Unauthorized -[*]:表示用户没有权限(令牌、用户名、密码错误)

②自定义内部的code进行响应
返回结构如下:
{‘code’:200,‘data’:{},‘error’:xxx}
解释:状态码是200,返回正确的数据,正确数据包含的内容,错误,返回错误的内容。
在编程中常用自定义的内部的code进行响应,因为HTTP响应码表达此次请求结果,不能完全的反应程序响应所出现的问题,自定义的可以如实反应,方便修改。

8.返回结果(根据HTTP动作的不同。返回的结果的结构也有所不同)
实例:

GET/users:返回资源对象的列表(数组)

GET/users/ zhangsan:返回单个资源对象

POST/users:返回新生成的资源对象

PUT/users/zhangsan:返回完整的资源对象

PATCH/users/zhangsan:返回完整的资源对象DELETE/users/zhangsan:返回一个空文档
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:30:42  更:2022-02-16 13:31:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:37:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码