restful api 设计
imeay opened this issue · 0 comments
imeay commented
说在前头
有时候,一个接口的定义,给一个变量,一个方法命名,都会让你花掉大半天的时间。今天就说下接口定义,在通读一些文章后,记录一下。
restful api
发挥 HTTP 动词的作用
get
, post
, put
,patch
,delete
从字面意义上看,本身就代表了一种行为
让动词在路径中消失
本身uri代表的就是一种资源,结合HTTP动词,我们可以实现对这些资源的调配
假设我要写篇小说
小说 fanfic 章节 section, 其实我觉得可以有更好的名词来表示这两个
小说信息
- 创建小说
POST /fanfics
- 删除主键id为1的小说
DELETE /fanfics/1
- 更新主键id为1的小说信息(比如标题,类别)
PUT /fanfics/1
- 获取主键id为1
GET /fanfics/1
- 获取所有小说
GET /fanfics
可以看到,HTTP 动词 和 fanfics 两个关键字的结合,可以实现对资源的调配了。
小说还有章节的
给第一篇小说创建章节
- 创建小说id为1的章节
POST /fanfics/1/sections
- 删除小说id为1,章节id为1的小说
DELETE /fanfics/1/sections/1
- 更新小说id为1,章节id为1的小说
PUT /fanfics/1/sections/1
等等,会发现,定义接口再也不会那么难了
说在结尾
不管是怎样的设计,一个接口的定义都应该让人清楚的知道它在做什么,但又足够简洁,这样子就可以了。