概要
2025年8月に、GraphQLのクライアントライブラリであるurqlがv5にアップデートされました。
私の個人開発してるWebアプリでもurqlを使用しておりアップデートをしてみたのですが、アップデートしたらGraphqlのクエリがGET通信になってしまいました。ここら辺の仕様変更や対応等についてメモ書きします。
前提
- 使用したurqlのバージョンは
5.0.1
です。
仕様変更について
major(core|persisted): use GET for queries by defaultのPull Requestsを確認すると、preferGetMethodの設定値がwithin-url-limit
でデフォルト設定になったようです。Clientのドキュメントによると、within-url-limitではURLの文字数が規定以内であればGETを使うみたいな挙動になるようです。
GETを使用したくない時
とはいえ、サーバサイド側ではPOSTで統一したいケースもあると思いますので、GETは使いたくないという時もあるでしょう。その際はclientの設定で、以下の通りpreferGetMethodをfalseにすれば大丈夫です。
const graphqlClient = createClient({
url: `${process.env.API_URL}`,
exchanges: [cacheExchange, fetchExchange],
preferGetMethod: false,
});
};