restful api 基础

基础

1.最好要带有版本(设置在url中或者header中)
2.网址里不能有动词
3.所有的接口的功能都用“都某个资源的某个操作”描述。
4.资源表现在url中
5.操作使用HTTP动词(patch,put,post,delete)来描述
6.设置统一的返回值格式和HTTP状态码。

api设计基本思路

1.把接口的功能转化成对“某个资源”的“某个操作”。
2.把资源暴露在url中。通过路径嵌套精准定位到目标资源
3.把操作用http动词来表示(增post删delete改path,put查get)
4.需要对返回数据限制(数量,排序等),加在query中
5.加上版本号

举例:(axios)

新增一个title为“abc”的item

=》资源为item,操作是增加
=》资源路径为…/item,请求为post
=》版本为v1
=》axios.post(’…/v1/item’,{title:‘abc’})

删除id为5的item

=》资源为id是5的item,操作是删除
=》资源路径是…/item/5,请求选择delete
=》版本为v1
=》axios.delete(’…/v1/item/5’)

把id为5的item的title修改为"bbb"

(item有title和content两个属性)
=》资源为id是5的item,操作是部分修改
=》资源路径是…/item/5,请求选择patch
=》版本为v1
=》axios.patch(’…/v1/item/5’,{title:‘bbb’})

把id为5的item修改{title:“bbb”,content:“xxx”}

(item有title和content两个属性)
=》资源为id是5的item,操作是全部修改
=》资源路径是…/item/5,请求选择put
=》版本为v1
=》axios.put(’…/v1/item/5’,{title:“bbb”,content:“xxx”})

获取id小于10000中前100个item(字段需要自己设置)

=》资源为的item,操作是获取
=》资源路径是…/item,请求选择get
=》版本为v1
=》axios.get(’…/v1/item’,params:{
max_id:10000,
limit:100
})

登录、登出,注册,注销

根据restful原则,无法使用login之类的动词,所以得修改这些接口的路径。
方法:把token或者session视作资源,登录登出视作对它的操作。同样的,把user视作资源,注册、注销和修改用户信息视作对其的操作

举例
登录:axios.post(’…/token’,header:{token:xxx})
登出:axios.delete(’…/token’,header:{token:xxx})
注册:axios.post(’…/user’,{username:‘abc’,password:‘abc’})
注销:axios.delete(’…/user’,{username:‘abc’})
修改用户信息:

HTTP报头(暂略)

HTTP状态码(部分)

200 成功
400 请求格式不对
500 出错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值