比方说,我有一个名为“会话”的资源。 客户会打电话PUT创建并开始一个新的会话。 当客户端完成会话后,就应该不再是可访问的,但应该坚持历史/问责的原因。
要结束会话,它会更合适发出DELETE请求,这似乎在语义上更接近预期的效果,或者POST,看到的资源实际上不是永久删除?
比方说,我有一个名为“会话”的资源。 客户会打电话PUT创建并开始一个新的会话。 当客户端完成会话后,就应该不再是可访问的,但应该坚持历史/问责的原因。
要结束会话,它会更合适发出DELETE请求,这似乎在语义上更接近预期的效果,或者POST,看到的资源实际上不是永久删除?
这里的问题是:请求幂等 ? 如果执行两次相同的请求,是否有副作用? 当你订购了一篇文章,执行订单请求两次会得到你的文章的两倍等。
在这种情况下, POST
是你想要的方法。 如果没有,那么你想要么PUT
和DELETE
。
正如你似乎并不被删除会话,只改变其状态, PUT
将是一个更好的方法,因为它意味着资源被改变,并不会被删除,这是你的情况的情况。
编辑:
如果资源似乎是从客户端删除, DELETE
似乎更为合适。 如何事情在后面实现对客户端没有关系。
POST请求会更好这里,你不会真正删除该session
。 POST请求通常被用来改变对象的状态。 这是你的情况,我认为。