まず対処方法
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 知らずに修正してドカンってなる未来が見える。)
参考
方法は ▼ に書かれていました。
終わり
「色々調べて」は調べたわけじゃなくて既知の事象を教えてもらった。
引き継ぎ待ちじゃなくて情報は取りに行こうね。
間違ってるとこあったり詳しい人いたら教えてください。
初投稿です。こんな感じでいいのかな。趣味とかも投稿していきます。