KusanagでWP REST APIの取得がうまくいかないときの対処法
※本ページはプロモーションが含まれていますWP REST APIを使ってアプリを開発しているのですが、APIのリクエスト結果がうまく返ってきたり返ってこなかったりして困っていました。
正確に言うと、レスポンスはしっかり返ってきているのに、返ってきたJSONテキストにJSON.parse()をすると空になるという謎な状態でした。
丸一日以上悩んだのですが、原因は、KUSANAGIがjsonをキャッシュしていたこと。
通常のレスポンスなら問題なく処理できるのですが、キャッシュファイルが返ってきたときはJSON.parse()が空になってしまいます。
1回処理がうまく行っていること。動作しなくなっても取得したいデータがちゃんと返ってきているので原因の検討が付きませんでした。(あとから考えると、ちゃんとしたJSONテキストではなかったのでちゃんと返ってきていないということだったのですが…。)
KUSANAGIがWP REST APIのリクエストURLをキャッシュしないようにしたら解決しましたので、その方法を紹介します。
KUSANAGIで特定のURLをキャッシュさせないようにする方法
WordPressの管理画面を開き、「KUSANAGI」→「ページキャッシュ」→「キャッシュ除外URL」に「/wp-json/*」を追加し、「変更を保存」をクリック。
除外URLはこちら。
/wp-json/*
保存が完了したら、「キャッシュのクリア」の「すべて」をクリックしてすでにできたキャッシュを削除。
これで完了。
おわりに
KUSANAGIは便利だけどハマりどころが多いぜ…。