我们正在逐步为我们的Web应用程序实现REST服务。当前,该应用程序是旧的程序样式类型的应用程序。
新应用将使用html5,后端通过CF10返回的JSON格式对象的CF10 REST api调用实现。
我们需要通过jquery调用将SESSION变量传递给REST cfc。有没有办法避免将SESSION变量作为jquery调用的参数?所有REST cfc都位于Coldfusion10的Web根目录中,因此REST cfc无法访问SESSION范围。
谢谢
最佳答案
我找到了有关RESTful services in ColdFusion的以下文档。尤其参见第4点:
REST架构原则:
基于REST的应用程序遵循一些体系结构原则:
资源识别:在基于REST的体系结构中,一切都是资源。您必须使用URI标识这些资源中的每一个。在ColdFusion中,您可以将在CFC中定义的功能用作REST资源,并且可以使用URI访问它们。
统一且受约束的接口:RESTful应用程序中的每个资源都应支持HTTP通用操作,即资源应能够处理HTTP协议方法-GET,PUT,POST和DELETE。在ColdFusion中,您可以通过HTTP访问资源(函数)。这些资源均支持HTTP动词。根据请求中指定的动词,调用相应的资源。
面向表示形式:REST允许资源具有不同的表示形式-纯文本,HTML,XML,JSON等。客户端可以通过HTTP协议请求特定的表示形式。 HTTP在客户端和服务器之间提供了一种简单的内容类型协商协议。例如,AJAX应用程序可能需要JSON格式的数据,而Java应用程序可能需要XML格式的数据。
无状态通信:在REST中,服务器不存储客户端会话数据。但是,存在许多交换状态信息的技术,例如URI重写,cookie和隐藏的表单字段。另外,对于加密,您可以在HTTPS之上使用REST。
还可以在StackOverflow上找到关于此的这些讨论:
Way to maintain a session in a REST application
Website based on REST in ColdFusion
maintaining session in REST web service
Do sessions really violate RESTfulness?