1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[備忘録] キャッシュを無視する方法

Posted at

まず対処方法

URLの末尾にランダムなパラメータを追加した。
例:(▼の&以降を追加した。)
https://************?hoge=fuga&_=d407cf76-ed73-3579-959e-78c80e8d4579
これでURLが毎回別物として扱われるからキャッシュではなくオリジナルの情報を返してもらえる。

経緯

iosアプリの保守をしているのですが、iTunes Search APIでストアバージョンを取得してアプリバージョンと比較をしてアップデートを促すポップアップを表示してます。

ところがどっこいリリースをした後すぐにポップアップが表示されない。
で、いろいろ調べてAPIが経路のどこかでキャッシュしてる情報を返してるっぽい。
→curl -v で確認すると確かにcache-controlがMax-Age:10000くらいになってる。
あと3時間弱そのままってこと??
ということで後方互換性の無い変更のとき問題になるため対処するのであった。

メリットデメリットなど

まずメリットは修正が超簡単。
SwiftではUUID().uuidStringでuuidを作れたのでこれをリクエストパラメータに追加しただけ。
デメリットは定義されていないパラメータを使うとおかしな動作をする可能性があるということ。iTune Search APIの場合'_'は特に問題なかったが、何かしら利用されている可能性がワンチャンある。なので採用する前にcurlコマンドでも使って問題ないことを確認しておこう。
用意されている中でなんでもいい適当なパラメータをランダムな値指定するようにした方が良かったかもしれない。(この場合はいざ使おうとなるととても困る or 知らずに修正してドカンってなる未来が見える。)

参考

方法は ▼ に書かれていました。

終わり

「色々調べて」は調べたわけじゃなくて既知の事象を教えてもらった。
引き継ぎ待ちじゃなくて情報は取りに行こうね。
間違ってるとこあったり詳しい人いたら教えてください。
初投稿です。こんな感じでいいのかな。趣味とかも投稿していきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?