useQuery
useQuery メソッドを使用すると、react-query 本来の useQuery を利用できます。
- result は本来の関数と同じです。
functionKeyは[method, path, params]です。dataとerrorは完全に型付けされています。- 第4引数としてクエリオプションを渡すことができます。
TIP
useQuery に関する詳細は、@tanstack/react-query ドキュメント で確認できます。
使用例
tsx
import { $api } from "./api";
export const App = () => {
const { data, error, isLoading } = $api.useQuery("get", "/users/{user_id}", {
params: {
path: { user_id: 5 },
},
});
if (!data || isLoading) return "読み込み中...";
if (error) return `エラーが発生しました: ${error.message}`;
return <div>{data.firstname}</div>;
};ts
import createFetchClient from "openapi-fetch";
import createClient from "openapi-react-query";
import type { paths } from "./my-openapi-3-schema"; // openapi-typescriptで生成された型
const fetchClient = createFetchClient<paths>({
baseUrl: "https://myapi.dev/v1/",
});
export const $api = createClient(fetchClient);Api
tsx
const query = $api.useQuery(method, path, options, queryOptions, queryClient);引数
method(必須)- リクエストに使用する HTTP メソッド
- このメソッドがキーとして使用されます。詳細については Query Keys を参照してください。
path(必須)- リクエストに使用するパス名
- スキーマ内で指定されたメソッドに対応する利用可能なパスでなければなりません。
- パス名はキーとして使用されます。詳細については Query Keys を参照してください。
options- リクエストに使用する fetch オプション
- OpenAPI スキーマがパラメータを要求する場合のみ必要です。
- オプションの
paramsはキーとして使用されます。詳細については Query Keys を参照してください。
queryOptions- 本来の
useQueryオプション - 詳細はこちら
- 本来の
queryClient- 本来の
queryClientオプション - 詳細はこちら
- 本来の