是否需要REST api请求才能包含cookie?

时间:2009-07-10 10:43:05

标签: api cookies rest

我的想法是将我的rest api中的URI视为一种独特的资源,除了客户端位置的上下文,它存储在cookie中。这种方法有什么缺点吗?

3 个答案:

答案 0 :(得分:2)

从哲学的角度来看,如果你没有通过URL唯一地识别资源,那么它就不是真正的REST(至少,根据我对Fielding的读数)。

从实际角度来看 - 这是基于经验 - 如果您需要使用Web服务调用cookie,那么您将陷入痛苦的世界。主要是因为它是必须在不同代码路径上管理的一条信息,使您的客户端代码更加复杂。您还会遇到域和代理问题(特别是如果您在服务和传统的Web应用程序之间共享cookie),并且它不能在客户端之间移植。

如果您希望根据位置生成不同的内容,为什么不使用地理定位服务?

编辑:为什么不将位置作为请求网址的一部分?您仍然可以使用Cookie来存储此信息,并retrieve it using JavaScript。这将使您的服务界面保持干净,并允许您轻松使用其他客户端的服务。

答案 1 :(得分:1)

作为API,您应该将客户端程序员的易用性作为高优先级。在许多支持HTTP的库中,将cookie放入HTTP请求比将查询参数放入URL更困难。

答案 2 :(得分:0)

我会关注缓存。在位置A向用户发出一个请求,它被缓存,用户移动到B并再次发出请求,获取位置请求的版本。