Play Framework - 跨多个调用保存对象状态

时间:2015-01-09 11:08:01

标签: java rest session playframework-2.0

我玩了!框架(2.3.7)具有多条路径的应用程序:

/api/set_x
/api/set_y
/api/set_z
/api/launch

这些调用中的每一个都在MyObject的实例中设置属性。 调用/api/launch时,MyObject的实例会被验证,如果一切正常,它将被保留,并且200 OK将返回给用户。

如何在调用/api/launch之前将实例的状态保持在多个调用之间?

  1. 使用会话似乎很糟糕,因为在游戏中会话只是一个cookie,限制为4KB。
  2. 使用缓存 - 如果缓存被逐出,我无法再次重建实例,这意味着用户可以提供所有属性,但在调用/api/launch之前,缓存被驱逐并且是一个错误的请求而不是确定将返回给用户。
  3. 有没有一种优雅的方式在Play中实现这样的东西?

1 个答案:

答案 0 :(得分:1)

没有针对您的问题的最佳解决方案,它主要取决于具体的用例。要在请求之间保留数据,您有三种可能的选择:

  • 播放会话或Cookie
  • 一些缓存层
  • 数据库

Play框架的一个主要特性是服务器端的无状态,在设计应用程序时应始终牢记这一点。因此,如果您正在寻找一种“优雅”的解决方案,答案很简单 - 没有这样的解决方案。这完全取决于特定情况。