スピード重視で、ノーミス。エンドツーエンドの型安全な API を簡単に実現。
以下のフルパワーを体験してください TypeScript フルスタックアプリケーションの生産性を向上させるための型推論
。
自動的な型安全性
サーバー側で変更を加えましたか? TypeScript は、ファイルを保存する前にクライアント側のエラーを警告します!
軽快な DX
tRPC にはビルドやコンパイルのステップがないため、コード生成、ランタイムの肥大化、ビルドステップがありません。
フレームワークに依存しない
すべての JavaScript フレームワークとランタイムと互換性があります。既存のプロジェクトにも簡単に追加できます。
オートコンプリート
tRPC を使用すると、API のサーバーコード用の SDK を使用しているかのように、エンドポイントに自信を持つことができます。
軽量なバンドルサイズ
tRPC は依存関係がなく、クライアント側のフットプリントが小さいため、軽量です。
バッテリー付属
React、Next.js、Express、Fastify、AWS Lambda、Solid、Svelte などに対応したアダプターを提供しています。
ts
constt =initTRPC .create ();constrouter =t .router ;constpublicProcedure =t .procedure ;constappRouter =router ({greeting :publicProcedure .input (z .object ({name :z .string () })).query ((opts ) => {const {input } =opts ;return `Hello ${input .name }` asconst ;}),});export typeAppRouter = typeofappRouter ;
ts
constt =initTRPC .create ();constrouter =t .router ;constpublicProcedure =t .procedure ;constappRouter =router ({greeting :publicProcedure .input (z .object ({name :z .string () })).query ((opts ) => {const {input } =opts ;return `Hello ${input .name }` asconst ;}),});export typeAppRouter = typeofappRouter ;
1
プロシージャを定義する
tRPC API を作成する最初のステップは、プロシージャを定義することです。
プロシージャとは、バックエンドの構築に使用する関数のことです。プロシージャは*構成可能*で、クエリ、ミューテーション、またはサブスクリプションにすることができます。ルーターには複数のプロシージャが含まれています。
このプロシージャでは、 Zodバリデーターを使用して、クライアントからの入力がプロシージャで想定されている形状と完全に一致することを確認します。また、クエリから単純なテキスト文字列を返します。
ファイルの最後で、ルーターの型をエクスポートして、少し後でフロントエンドコードで使用できるようにします。
ts
const { listen } = createHTTPServer({router: appRouter,});// The API will now be listening on port 3000!listen(3000);
ts
const { listen } = createHTTPServer({router: appRouter,});// The API will now be listening on port 3000!listen(3000);
2
HTTP サーバーを作成する
次に、`appRouter` を使用して HTTP サーバーを作成します。これで tRPC サーバーが実行されました!
tRPC には多くのアダプターがあるため、あらゆる状況に対応できます。Next.js、Express、Fetch API (Astro、Remix、SvelteKit、Cloudflare Workers など)、Fastify、AWS Lambda、またはバニラ Node HTTP サーバー。
ts
consttrpc =createTRPCClient <AppRouter >({links : [httpBatchLink ({url : 'http://localhost:3000',}),],});constres = awaittrpc .greeting .query ({name : 'John' });
ts
consttrpc =createTRPCClient <AppRouter >({links : [httpBatchLink ({url : 'http://localhost:3000',}),],});constres = awaittrpc .greeting .query ({name : 'John' });
3
クライアントを接続してクエリを開始する!
サーバーが実行されたので、クライアントを作成してデータのクエリを開始できます。
クライアントを作成するときに `AppRouter` 型を渡すことで、コード生成を必要とせずにバックエンド API に一致する TypeScript のオートコンプリートと IntelliSense が提供されます!
「tRPC を開発した理由は、従来の API レイヤーを必要とせずに、**より迅速に**移動できるようにするためです。また、アプリが急速に反復されても壊れないという自信を持つためです。」
ぜひお試しいただき、ご意見をお聞かせください!
Alex/KATT
tRPC の作成者

Theo - ping.gg
@t3dotgg
tRPC が私たちのコードの品質、配信速度、開発者の幸福度をどれほど向上させたかは、理解しがたいほどです。私はよく tRPC について話しますが、真剣に、@trpcio を試してみてください。

R. Alex Anderson 🚀
@ralex1993
🤯 tRPC 10 では、VS Code の「すべての出現箇所を変更」機能が*クライアント/サーバーの境界を越えて*動作するようになりました!このビデオでは、「すべての出現箇所を変更」を使用してプロシージャ入力を名前変更しています。この変更は、アプリ全体で入力が使用されているすべての場所に反映されます。🤩 cc @trpcio

Kent C. Dodds 🌌
@kentcdodds
@remix_run からエンドツーエンドの型安全性が得られていなかったら、100% 真剣に @trpcio を検討していたでしょう。Remix を使用していない場合は、ぜひご覧ください 👀

Sock, the dev 🧦
@sockthedev
TypeScript に完全対応している場合は、API に tRPC を使用する必要があります。 ifs も buts もありません。tRPC は、フロントエンドとバックエンドの境界線を破壊します。アプリの機能構築に集中できます。市場投入までの時間を短縮するための最高のツールです。@alexdotjs と結婚してください 💍

Lee Byron
@leeb
@t3dotgg と @mxstbr の #tRPC と @GraphQL についての話し合いを聞いて、どちらも素晴らしいものであり、それぞれに適した時期と場所があることに同意していることがわかりました 💖

Jökull Solberg
@jokull
tRPCはすごいです。Stripe連携を構築しています。サーバーからStripe APIのペイロードを返すと、ファイルを保存することなく、Reactコンポーネントのレスポンスデータの型定義が取得されます。まるでバックエンドではなくフロントエンドでStripeライブラリを使用しているかのようです。 /cc @alexdotjs

Christian Legge
@christian_legge
昨日は一日中@trpcioの学習と実装に費やしましたが、本当に素晴らしい投資でした。クエリとレスポンスの検証と解析にどれだけの時間(つまり無駄な時間)を費やしていたか信じられません!

Dominik 🇺🇦
@TkDodo
とはいえ、私たちはまさに今、本番プロジェクトを開始しようとしており、@nextjsと@trpcioを使用しています。どこから始めたらいいのかわからないほど素晴らしいです🔥。おそらくエンドツーエンドの型安全性からでしょう😍。クライアントの状態についてはあまり考えていませんが、前者は当てはまるでしょう。

Cory House
@housecor
@trpcio 素晴らしいです。シンプルで強力な型付け。モノレポでTSを使用する場合、プレーンなRESTやGraphQLよりも洗練された選択肢のように感じます。

Anders Bech Mellson
@andersmellson
今日は@trpcio v10で遊んで過ごしました。正式に恋に落ちました😍。ps. 妻には内緒です🙊

Mike | grabbou.eth 🚀
@grabbou
@t3dotgg @trpcio まったくその通りです。プロシージャを書くたびに、以前はどれほど大変だったかを思い出すので、文字通り笑顔になっています。組み込みエラー、型付きミドルウェア(コンテキストを変更可能)、入力検証。本当に素晴らしいです!

Martin
@wikitable
💖 tRPCのおかげでアプリの開発がスピードアップしたので、@alexdotjsをスポンサーしています。 github.com/sponsors/KATT?…