1 url定义
- url:统一资源定位符
- 什么是URI,URL
URI 统一资源标志符。
URL 统一资源定位符。
URI是给我们的资源进行标识的,URL是描述我们资源地址的。
比如说我们每个人都有名字和身份证,名字可能重名,但是身份证是唯一的,那么身份证号就可以是我们的URI,标识我们每个人,也可以说标识我们每个资源。
我们可以通过身份证号找到Alex,也可以通过下面这种方式找到他…
Alex的住址协议://地球/中国/屌丝省/屌丝市/寡妇村/250号街道/250号/Alex
这个就是我们的URL,我们通过这两种方式都可以找到我们的资源,其实我们的URL可以说是URI的子集,通过定位的方式实现的URI
2 URI语法
URI = scheme “://” localhost":"port“/” path [ “?” query ][ “#” fragment ]
scheme: 指底层用的协议,如http、https、ftp
localhost: 服务器的IP地址或者域名
port: 端口,http中默认80
path: 访问资源的路径,就是咱们各种web 框架中定义的route路由
query: 为发送给服务器的参数
fragment: 锚点,定位到页面的资源,锚点为资源id
3 URL路径
3.1 endpoint
路径又称"终点"(endpoint),表示API的具体网址。
在RESTful架构中,每个网址代表一种资源,所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。
一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
举例来说,有一个API提供学校的信息,包括各个班级,老师,同学的信息,则它的路径应该设计成下面这样:
https://school/v1/classes
https://school/v1/teachers
https://school/v1/students
3.2 URL规则
1 名词对应数据库中的表
2 URL中不能有动词
3 URL结尾不应该包含斜杠“/”
4 正斜杠分隔符”/“必须用来指示层级关系
5 使用连字符”-“来提高URL的可读性,而不是使用下划线”_”
6 URL路径中首选小写字母
7 URL路径名词均为复数
安全性和幂等性
- 安全性 :不会改变资源状态,可以理解为只读的;
- 幂等性 :执行1次和执行N次,对资源状态改变的效果是等价的。
方法 | 安全性 | 幂等性 |
---|---|---|
GET | √ | √ |
POST | × | × |
PUT | × | √ |
DELETE | × | √ |
安全性和幂等性均不保证反复请求能拿到相同的response。以 DELETE为例,第一次DELETE返回200表示删除成功,第二次返回404提示资源不存在,这是允许的。