Does Bixby cache the requests on server?

时光总嘲笑我的痴心妄想 提交于 2019-12-01 22:40:12

问题


In my application all the utterances from Bixby are redirected to an action which makes an api call. This api call returns the response to Bixby for the user utterance. Recently I observed that if the user says the following: -

user says: - Add xyz to my cart
api response: - Would you like 2 of those?
user says: - Yes
api response: - Would you like to checkout?
user says: - Yes

Ideally now the request should come to my api and the user should be shown the checkout result page, but instead Bixby shows the user cached response and is shown the below response again: -

api response: - Would you like to checkout?

and the loop continues indefinitely. I wanted to know if this behaviour is expected? Is there a way we can skip the caching and send the request to the api endpoint to respond?


回答1:


Yes, requests are cached on the server. You can disable the cache if you wish.

For example,

let options = {
    cacheTime: 0
  };

let response = http.getUrl('https://my-capsule.com/api/search/', options);

See https://bixbydevelopers.com/dev/docs/reference/JavaScriptAPI/http#http-options for more options. No pun intended. :)




回答2:


In addition to cacheTime provided by the client, the Server can sometimes provide additional directives (max-age and no-store or no-cache) in the Cache-Control header. When this occurs, this is what Bixby does:

  1. no-cache or no-store: Bixby will not cache anything. This will override the cacheTime variable provided by client.
  2. time of response + max-age < current time: Remove response from cache (even if client requested a longer cacheTime)
  3. time of response + cacheTime < current time: Remove response from cache (even if response provided a longer max-age)


来源:https://stackoverflow.com/questions/56754104/does-bixby-cache-the-requests-on-server

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!