Does Bixby cache the requests on server?

2019-07-23 13:49发布

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?

标签: bixby
2条回答
【Aperson】
2楼-- · 2019-07-23 13:53

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. :)

查看更多
姐就是有狂的资本
3楼-- · 2019-07-23 14:15

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)
查看更多
登录 后发表回答