📄️ ルーターの定義
tRPC ベースの API の構築を開始するには、まずルーターを定義する必要があります。基本をマスターしたら、より高度なユースケースに合わせてルーターをカスタマイズできます。
📄️ プロシージャの定義
プロシージャはクライアントに公開される関数であり、以下のいずれかになります。
📄️ 入力と出力のバリデータ
tRPC プロシージャは、入力と出力の検証ロジックを定義でき、バリデータは入力と出力の型推論にも使用されます。多くの一般的なバリデータに対してファーストクラスのサポートがあり、直接サポートしていないバリデータも統合できます。
📄️ ルーターのマージ
すべての API コードを同じファイルに記述するのは良い考えではありません。他のルーターとルーターを簡単にマージできます。
📄️ コンテキスト
コンテキストには、すべての tRPC プロシージャがアクセスできるデータが保持され、データベース接続や認証情報などを配置するのに最適な場所です。
📄️ ミドルウェア
t.procedure.use() メソッドを使用して、ミドルウェアをプロシージャに追加できます。ミドルウェアはプロシージャの呼び出しをラップし、その戻り値を渡す必要があります。
🗃️ アダプターを使用した tRPC のホスティング
6 項目
📄️ サーバーサイドコール
ホストされているのと同じサーバーからプロシージャを直接呼び出す必要がある場合があります。createCallerFactory() を使用してこれを実現できます。これは、サーバーサイドコールと tRPC プロシージャの統合テストに役立ちます。
📄️ 認証
createContext 関数は着信リクエストごとに呼び出されるため、リクエストオブジェクトから呼び出し元のユーザーに関するコンテキスト情報を追加できます。
📄️ エラー処理
プロシージャでエラーが発生するたびに、tRPC は「error」プロパティを含むオブジェクトをクライアントに返します。このプロパティには、クライアントでエラーを処理するために必要なすべての情報が含まれています。
📄️ エラーフォーマット
ルーターのエラーフォーマットは、クライアント( React コンポーネント)まで完全に伝達されます。
📄️ データトランスフォーマー
レスポンスデータと入力引数をシリアル化できます。トランスフォーマーはサーバーとクライアントの両方に追加する必要があります。
📄️ メタデータ
プロシージャメタデータを使用すると、オプションのプロシージャ固有のメタプロパティを追加できます。これは、すべてのミドルウェア関数の parameters で使用できます。
📄️ レスポンスキャッシング
以下の例では、Vercel のエッジキャッシングを使用して、可能な限り迅速にユーザーにデータを提供しています。