Open
Description
名词解释
REST: Representational State Transfer。表现层状态转化。也可叫 “资源表现层状态转化”。
RESTful 风格
- 每一个 URI 代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过四个 HTTP 动词,对服务器端资源进行操作,实现"表现层状态转化"
资源(URI)
URI 指向资源,URI 只表现资源的位置。
- 动词:URL 不应含有动词,应该是名词。动词应该放在 HTTP 协议中。
- 版本:资源版本放入 URI,也可以将版本放在 HTTP 头中。
- 过滤:API 提供参数,返回过滤结果。参数的设计允许存在冗余,即允许 API 路径和 URL 参数偶尔有重复。
表现层
资源呈现的形式,表现不应在 URL 呈现,可以放在 Accept/Content-Type
。
状态转化
- 增
- POST:新建/更新。
- 删
- DELETE:删除。
- 改
- PUT:更新。客户端提供全部更新信息。
- PATCH:更新。客户端提供部分更新信息。
- 查
- GET:获取。
- HEAD:获取资源的元数据。
- OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
状态码
- 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
- 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
- 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT - [DELETE]:用户删除数据成功。
- 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
- 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
- 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
- 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
- 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
- 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
- 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
- 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
参考资料
Metadata
Metadata
Assignees
Labels
No labels