Кеширует ли Биксби запросы на сервере? - PullRequest
1 голос
/ 25 июня 2019

В моем приложении все высказывания из Биксби перенаправлены на действие, которое выполняет вызов API.Этот вызов API возвращает ответ Bixby для высказывания пользователя.Недавно я заметил, что если пользователь говорит следующее: -

пользователь говорит: - Добавить xyz в мою корзину
api response: - Хотели бы вы 2 из них?
пользователь говорит: - Да
api response: - Хотите оформить заказ?
пользователь говорит: - Да

В идеале теперь запрос должен прийти к моему API и пользователь долженпоказала страницу с результатами проверки, но вместо этого Биксби отображает ответ пользователя в кэше и снова отображает следующий ответ: -

ответ API: - Хотите оформить заказ?

и цикл продолжается до бесконечности.Я хотел знать, ожидается ли такое поведение?Есть ли способ, которым мы можем пропустить кэширование и отправить запрос конечной точке API для ответа?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Да, запросы кешируются на сервере. Вы можете отключить кеш, если хотите.

Например,

let options = {
    cacheTime: 0
  };

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

Подробнее см. https://bixbydevelopers.com/dev/docs/reference/JavaScriptAPI/http#http-options. Не каламбур предназначен. :)

0 голосов
/ 26 июня 2019

В дополнение к cacheTime, предоставляемому клиентом, Сервер может иногда предоставлять дополнительные директивы (max-age и no-store или no-cache) в заголовке Cache-Control.Когда это происходит, это то, что делает Биксби:

  1. no-cache или no-store: Биксби ничего не будет кэшировать.Это заменит переменную cacheTime, предоставленную клиентом.
  2. время ответа + max-age <текущее время: удаление ответа из кэша (даже если клиент запросил более длинный <code>cacheTime)
  3. время ответа + cacheTime <текущее время: удалить ответ из кэша (даже если ответ предоставлен дольше <code>max-age)
...