tRPCクライアントのセットアップ
1. tRPCクライアントライブラリをインストールする
お好みのパッケージマネージャーを使って、@trpc/client
ライブラリをインストールし、必須の型を含む@trpc/server
もインストールしてください。
- npm
- yarn
- pnpm
- bun
npm install @trpc/server@next @trpc/client@next
yarn add @trpc/server@next @trpc/client@next
pnpm add @trpc/server@next @trpc/client@next
bun add @trpc/server@next @trpc/client@next
2. アプリケーションルーターをインポートする
クライアントアプリケーションにAppRouter
型をインポートします。この型は、API全体の構造を保持します。
ts
import type {AppRouter } from '../server/router';
ts
import type {AppRouter } from '../server/router';
ヒント
import type
を使用することで、コンパイル時に参照が削除され、クライアントにサーバー側のコードを誤ってインポートすることがなくなります。詳細については、Typescriptのドキュメントを参照してください。
3. tRPCクライアントを初期化する
createTRPCClient
メソッドでtRPCクライアントを作成し、APIを指す終端リンクを持つlinks
配列を追加します。tRPCリンクの詳細については、こちらをクリックしてください。
client.tsts
import { createTRPCClient, httpBatchLink } from '@trpc/client';import type { AppRouter } from '../path/to/server/trpc';const client = createTRPCClient<AppRouter>({links: [httpBatchLink({url: 'http://localhost:3000/trpc',// You can pass any HTTP headers you wish hereasync headers() {return {authorization: getAuthCookie(),};},}),],});
client.tsts
import { createTRPCClient, httpBatchLink } from '@trpc/client';import type { AppRouter } from '../path/to/server/trpc';const client = createTRPCClient<AppRouter>({links: [httpBatchLink({url: 'http://localhost:3000/trpc',// You can pass any HTTP headers you wish hereasync headers() {return {authorization: getAuthCookie(),};},}),],});
4. tRPCクライアントを使用する
内部的には、これは型付きのJavaScript Proxyを作成し、完全に型安全な方法でtRPC APIを操作できるようにします
client.tsts
const bilbo = await client.getUser.query('id_bilbo');// => { id: 'id_bilbo', name: 'Bilbo' };const frodo = await client.createUser.mutate({ name: 'Frodo' });// => { id: 'id_frodo', name: 'Frodo' };
client.tsts
const bilbo = await client.getUser.query('id_bilbo');// => { id: 'id_bilbo', name: 'Bilbo' };const frodo = await client.createUser.mutate({ name: 'Frodo' });// => { id: 'id_frodo', name: 'Frodo' };
これで完了です!