我刚开始休息:我正在创建一个像webservice这样的购物车,用户需要对每个用户进行身份验证和添加项目。如何使用Rest实现这一点。 当他们说" REST是无国籍的时候意味着什么?#34; 我可以在sqlserver数据库中创建一个会话并将其作为响应返回,以便客户端可以使用它进一步调用吗?它是否考虑可扩展?
我看过有状态休息服务的帖子,他们回答说可扩展性会成为一个问题。还有一些帖子建议将信息存储在数据库Managing state in RESTful based application中 但是将值存储在数据库中也是某种状态,因为客户端需要按顺序执行并传递一些令牌以进行进一步的调用。 那么我可以得出结论,休息不适用于像应用程序一样的购物车吗?
答案 0 :(得分:2)
REST无状态约束表明客户端 - 服务器通信必须是无状态的,这意味着每个请求必须包含实现它所需的所有信息。简单来说,这意味着您无法进行服务器端会话,但是您可以进行客户端会话。
请记住,REST是一种架构风格,您应该遵循约束以利用相关的好处。如果这些好处对你来说并不重要,那么忽略它们比使用不符合风格的任何好处的东西更好。无状态约束旨在提高可见性,可靠性和可伸缩性。可见性,因为可以立即理解整个请求;可靠性,因为它更容易从服务器端故障中恢复;和可伸缩性,因为任何服务器实例都可以响应任何请求如果这些对您来说并不重要,请随时保留服务器端会话,如果这对您来说更容易。