首先,什么是RESTful接口,请参考这篇
RESTful API 最佳实践,作者:阮一峰
我常用的方法有四个POST、DELETE、PUT、GET,分别对应着增删改查
前端POST:
await axios.post( "/user",{ username : "admin" , password : "123" })
后端接收:let { username , password } = ctx.request.body
使用post方法时header['content-type']默认为application/json,此时数据向后端传输时会JSON序列化,所以直接在对象中写键值对就可以了。在后端通过request.body参数接收变量。
前端DELETE:
await axios.delete( "/user" , { data: {username : "admin" , password : "123" } })
后端接收:let { username , password } = ctx.request.body
使用delete方法时,由于数据包中没有默认的header['content-type']=application/json,此时数据向后端传输时,需要做一层data封装。在后端通过request.body参数接收变量。
前端PUT:
await axios.put( "/user" , { username : "admin" , password : "123"})
后端接收:let { username , password } = ctx.request.body
put方法与post同理,也是直接在对象中写键值对。在后端通过request.body参数接收变量。
前端GET:
await axios.get("/user" , { params : { username : "admin" , password: "123"} })
或者
await axios.get("/user/username?username='admin'&password='123' ")
后端接收:let { username , password } = ctx.request.query
使用get方法时,数据会在传输时被转化为query,params数据到达后端时是这种形式:username='admin'&password='123',所以在要提前声明params 或者直接以?形式传递转化后的最终结果。在后端通过request.query参数接收变量。