day40-Restful规范

第一部分:后端开发

在这里插入图片描述

1.1 RESTful规范

在这里插入图片描述

对于后端开发者,本质上就是提供URL给前端开发者调用并返回相应的数据。例如:

image-20210807125206445

现在咱们大家知道前端后端分离的项目是需要:前端、后端 双方来进行合作开发,既然合作进行开发就必须要提前约定一些规范,以防止双方”打架“,例如:

  • 数据传输用XML格式?JSON格式?

  • 出现错误时,错误信息有谁来提供?

    方案1:错误时后端返回错误信息,前端只做呈现即可。
    	{
    		code:40001,
    		error:"xxx错误"
    	}
    方案2:错误时后端返回错误码,前端根据错误码的对应关系呈现。
    	{
    		code:40001
    	}
    
  • 等等等…

所以,我们需要先来学习下规范,然后再来进行后续开发。

restful是主流的一套API规范,企业进行前后端分离开发一般都会遵循它,他定义了很多规范的条款。

例如:如果现在让大家来开发一个对 用户表 进行增删改查的接口,在不了解restful规范前, 大家一定会这样来搞:

接口:/users/list/			用户列表
接口:/users/add/			添加用户
接口:/users/detail/(\d+)	用户详细信息
接口:/users/edit/(\d+)	更新用户
接口:/users/del/(\d+)		删除用户

很早之前开发者们也确实都是这么干的,直到后来有人提出了 restful API规范(包含了很多规定),如果按照这个规范来开发上述的功能的话:

接口:/users/			方法:GET     =>   用户列表
接口:/users/			方法:POST    =>   添加列表
接口:/users/(\d+)/	方法:GET     =>   获取单条数据
接口:/users/(\d+)/	方法:DELETE  =>   删除数据
接口:/users/(\d+)/	方法:PUT     =>   更新数据

暂且不说restful规范有多好,对于前端和后端只要能统一了规范,对大家的开发效率都会有很大的帮助,不用再做很多无效的沟通了。

所以,接下来咱们就是学习最常见的restful规范。

1.HTTPS协议

建议使用https协议替代http协议,让接口数据更加安全。

这一条其实与开发无关,在最后的项目部署时只要使用https部署即可。

在这里插入图片描述

如果是基于HTTP协议,则意味着用户浏览器再向服务器发送数据时,都是以明文的形式传输,如果你在某咖啡厅上网,他就可以把你网络传输的数据明文都获取到。

如果是基于HTTPS协议,则意味着用户浏览器再向服务器发送数据时,都是以密文的形式传输,中途即使有非法用户获取到网络数据,也可以密文的,无法破译。

HTTPS保证了数据安全,但由数据传输存在着加密和解密的过程,所以会比HTTP协议慢一些。

注意:此处大家先了解https和http的不同,至于底层原理和部署,在项目部署时再细讲。

参考文档:https://www.cnblogs.com/wupeiqi/p/11647089.html

2. 域名

对于后端API接口中要体现API标识,例如:

  • https://api.example.com
  • https://www.example.com/api/

在这里插入图片描述

在这里插入图片描述

3. 版本

对于后端API接口中要体现版本,例如:

- http://api.example.com/v1/

- http://api.example.com/?version=v1

- http://v1.example.com/

- http://api.example.com/
  请求头:Accept: application/json; version=v1

image-20210807142526704

4. 路径

restful API这种风格中认为网络上的一切都称是资源,围绕着资源可以进行 增删改查等操作。

这些资源,在URL中要使用名词表示(可复数),围绕着资源进行的操作就用Method不同进行区分。

https://api.example.com/v1/person
https://api.example.com/v1/zoos
https://api.example.com/v1/animals
https://api.example.com/v1/employees

5. 请求方法

根据请求方法不同进行不同的操作。

GET		在服务器取出资源(一项或多项)
POST	在服务器新建一个资源
PUT		在服务器更新资源(客户端提供改变后的完整资源)
PATCH	在服务器更新资源(客户端提供改变的属性)
DELETE	在服务器删除资源

例如:

https://api.example.com/v1/users
https://api.example.com/v1/users/1/

接口:/users/			方法:GET     =>   用户列表
接口:/users/			方法:POST    =>   添加用户
接口:/users/(\d+)/	方法:GET     =>   获取单条数据
接口:/users/(\d+)/	方法:DELETE  =>   删除数据
接口:/users/(\d+)/	方法:PUT     =>   更新数据
接口:/users/(\d+)/	方法:PATCH   =>   局部更新

6. 搜索条件

在URL中通过参数的形式来传递搜索条件。

https://api.example.com/v1/users
https://api.example.com/v1/zoos?limit=10				指定返回记录的数量
https://api.example.com/v1/zoos?offset=10				指定返回记录的开始位置
https://api.example.com/v1/zoos?page=2&per_page=100		指定第几页,以及每页的记录数
https://api.example.com/v1/zoos?sortby=name&order=asc	指定返回结果按照哪个属性排序,以及排序顺序
https://api.example.com/v1/zoos?animal_type_id=1		指定筛选条件

7. 返回数据</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生而自由爱而无畏

你的打赏是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值