Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
5分でtRPCに入門する
Search
Haruki Murasaki
October 27, 2022
Programming
0
330
5分でtRPCに入門する
2022/10/27
https://rakus.connpass.com/event/258984/
Haruki Murasaki
October 27, 2022
Tweet
Share
More Decks by Haruki Murasaki
See All by Haruki Murasaki
開発速度を5倍早くするVSCodeの拡張機能を作った
purp1eeeee
2
370
Other Decks in Programming
See All in Programming
Fragment Composition of GraphQL
quramy
13
1.4k
Fast JSX: Don't clone props object #28768
yossydev
1
170
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
440
PostmanでAPIの動作確認が楽になった話
h455h1
0
180
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
170
Introducing Kotlin Multiplatform in an existing mobile app - Workshop Edition | AndroidMakers Paris
prof18
0
150
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
400
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
1k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
280
AppRouter Panel Talk
yosuke_furukawa
PRO
1
460
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
Statistics for Hackers
jakevdp
790
220k
Embracing the Ebb and Flow
colly
80
4.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Design by the Numbers
sachag
274
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
Building Effective Engineering Teams - LeadDev
addyosmani
32
1.9k
Transcript
5分で tRPCに入門する 2022/10/27 @purp1eeeee
自己紹介 むらさき - 株式会社HRBrainのソフトウェアエンジニア - TypeScript/React/Go - TwitterとGitHub: purp1eeeee
tRPCとは
tRPCとは - TypeScriptに特化したHTTP通信ライブラリ - スキーマを書いたりコード生成をする必要がない - エンドポイントの実装からapi clientの型を生成する - サーバーとクライアント間で型を共有する
- monorepoと相性が良い - Next.jsのAPI Routesも
tRPC入門 登場人物 - next 13.0.0 - react 18.2.0 - react-dom
18.2.0 - @trpc/server - @trpc/client - @trpc/next - @trpc/react-query - @tanstack/react-query - zod
tRPC入門 エンドポイントの定義 /server/trpc.ts 最初にtRPCの初期化とユーティリティをexportするエントリーファイルを準備
tRPC入門 エンドポイントの定義 /pages/api/trpc/[trpc].ts request bodyなどはzodやyupなどで定義する それぞれのqueryやmutationに渡すcallback内で DBへのアクセスや加工を行う 25行目のAppRouterがポイントで、この型をclient にジェネリクスとして渡すことで型安全を保証する
tRPC入門 クライアントの定義 /utils/trpc.ts エンドポイントの指定やloggerの様な middleware、カスタムヘッダーや CORSの設定をする /pages/_app.tsx trpcが内部でreact-queryのhook を生成するためprovider対応の ためHOCを行う
tRPC入門 APIを叩いてみる /pages/index.tsx trpcが生成しているhookを呼ぶ 引数や返り値は全て型推論が効いて いる
tRPC入門 APIを叩いてみる
まとめ - 少ない記述で型安全なAPI間やりとりを実現できる - Next.jsと相性が良さそう - 認証認可やエラー処理も試したい 最終形はこちら:https://github.com/purp1eeeee/trpc-practice