在restful api 设计中,如果要获得一个资源,一定要用GET方法么?
问题描述
我对restful不是非常的理解,在一些文章中,看到获取资源的时候,一般用GET方法。我的问题是,我要获取的资源是一个账户的信息,需要实用token,我一般把token放在POST请求里面,当然也可以将token放在连接中使用GET。
所以我很想知道,一般在实际的项目中,是怎么做的呢?
//补充问题:
我现在在做一个学生水平的小项目(比较菜),我用node.js做后端,但是native app和web用了一个后端。
那么我后端的形式类似
router.route('/account/address')
.get{//获得关于管理地址的网页而非用户地址的数据
send(web page)
}
.put{//增加一条地址
var addr
Account.putAddress
send(addr)
}
.delete{//删除一条地址
var addr
Account.deleteAddress(addr)
send(success)
}
实际上是我将get方法用作访问web页面(也是获取资源的一种,但是并非获取一些json串数据)。所以get被占用了,所以我才会有这种问题的。
也不知道实际的工作中app和web的后端是不是一套,或者设计api的时候有没有完全遵循restful-api?
对post、get、put、delete、option、head等请求方法,都是http method。具体的每种请求方法的作用都在http中定义了。在http中,post一般用于创建新的资源,put用于资源的更新,get用与获取资源等。所以使用post也可以获取资源,使用get也能创建资源或者更新资源,但一般不推荐,这里类似软件开发中的业界约定。
在Restful风格请求中,继续沿用这些特征。同时对url做了一些规范,对运维更加友好。
针对你说的token这个事情,在我项目中会使用post请求根据用户信息获取一个token,然后拿着token用get方法请求资源。另外,我也会将token放到http请求头中。
以上是个人工作经验,希望对你有帮助
这篇关于在restful api 设计中,如果要获得一个资源,一定要用GET方法么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!