读[Richardson Maturity Model]
原文地址: https://martinfowler.com/articles/richardsonMaturityModel.html#level0
这篇文章讲述了RESTful的定义和设计模型, 对于每个方法分开讲解了其特点和使用时的注意事项:
GET vs POST:
- GET 返回的是HTTP 200 OK. POST返回的是HTTP 201 Created.
- 当GET不到东西时, 应该返回HTTP 200和空的数据结构, POST的东西已经存在时, 应该返回HTTP 409 Conflict。
- 在只获取数据而不改变数据时, 应该使用GET, GET应该伴随着caching的优化.
- GET应该是一个safe operation,对应着POST是一个non-safe operation. GET对应的是read, POST对应的是write在consistency model中.
PUT vs POST:
- 这两个都是更新数据库的方法, 通常下认为PUT是update, POST是create.
- 但是和一般数据库定义的CRUD有区别, PUT更倾向于更新一个给定地址上的数据, 而POST仅仅是发布一个数据到一个link.比如:
- 当PUT /www.chenguanghe.com/article/123 时,后台应该:
- 找到文章id为123的文章
- 更新文章id为123的文章
- 返回HTTP 200 OK
- 当POST /www.chenguanghe.com/article 时, 后台应该:
- 创建一个文章, 比如其id为333
- 在333下创建POST的内容.
- 返回HTTP 201 Created
- 当PUT /www.chenguanghe.com/article/123 时,后台应该:
Leave A Comment