用于验证资源的REST实践

时间:2012-11-05 10:32:14

标签: rest

我目前正在实施“令牌”REST服务。

令牌只是一个字符串,由一些参数构建,然后经过一段时间后进行哈希处理并过期。

我希望在我的REST服务中有一个可以验证令牌的端点,但我不是100%确定如何以RESTful方式实现它

  1. 我认为这应该通过GET完成,因为它不会改变状态,只要我正确设置缓存控件,它就可以缓存一段合理的时间。即mysite.com/token/kjfhwekjfwekj
  2. 适当的退货代码是什么?如果它有效,我会假设200,但如果它无效呢?我觉得400是错的,因为虽然资源本身无效,但客户端没有错误地调用端点。 404在这里是否正确?如果我们认为令牌是短暂的资源,我想是这样的吗?

3 个答案:

答案 0 :(得分:6)

GET是检查令牌的正确HTTP谓词。

假设令牌的“无效”意味着:

  1. 它从未存在过,或
  2. 它已存在但不再存在。
  3. 您是否希望服务的客户能够了解差异

    • 如果,则针对案例1返回404 Not Found,针对案例2返回410 Gone
    • 如果,请返回404 Not Found

    如果令牌存在,200 OK是正确的。

答案 1 :(得分:1)

如果你想要Restful,最好的方法是使用HEAD方法,因为你没有请求令牌,你只想知道令牌是否存在。

HEAD方法用于请求资源的元数据。 GET用于检索资源

答案 2 :(得分:0)

服务器具有对称散列密钥;它可用于验证传入令牌是否由其他人生成。