激活后会自动触发喷涂GET请求

时间:2014-08-13 17:25:43

标签: spray

我使用Spray为Web后端编写API。一个API是GET类型的API,用于检索文档的URL并将URL作为JSON发送。我知道基于REST标准,GET不应该创建任何副作用,但这是用户完成任务的API,我想给每个用户不同的任务(因此将检索到的文档标记为{我的数据库中的{1}}。

似乎Spray-routing预执行所有retrieved请求并缓存它们。每当我向该API发送http请求时,我都会返回相同的文档,而不是另一个。

我的问题是:我仍然想使用GET请求,因为我认为这是此任务最自然的动词,但我怎样才能完成任务 - 每次都返回不同的文档网址安全地创造副作用?

也许我应该使用不同的动词?但是哪一个?

原始代码是:

GET

1 个答案:

答案 0 :(得分:1)

我修改了我的代码:

         get {
                complete{
                  val response = (secCompanyActor ? WebGetOneCompany).mapTo[TransOk]
                    .map(result => result.succeedOrNot match {
                    case true => (OK, result.company.get)
                    case false => (BadRequest, result.errorMessage) //no more company left
                  })
                  response
                }
              }