我使用Spray为Web后端编写API。一个API是GET
类型的API,用于检索文档的URL并将URL作为JSON发送。我知道基于REST标准,GET
不应该创建任何副作用,但这是用户完成任务的API,我想给每个用户不同的任务(因此将检索到的文档标记为{我的数据库中的{1}}。
似乎Spray-routing预执行所有retrieved
请求并缓存它们。每当我向该API发送http请求时,我都会返回相同的文档,而不是另一个。
我的问题是:我仍然想使用GET
请求,因为我认为这是此任务最自然的动词,但我怎样才能完成任务 - 每次都返回不同的文档网址安全地创造副作用?
也许我应该使用不同的动词?但是哪一个?
原始代码是:
GET
答案 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
}
}