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
tsoaはいいぞ!APIドキュメントを自動生成!
Search
ミカイ
February 05, 2025
0
7
tsoaはいいぞ!APIドキュメントを自動生成!
shibuya.ts
2025/02/05
https://shibuya-ts.connpass.com/event/339243/
ミカイ
February 05, 2025
Tweet
Share
More Decks by ミカイ
See All by ミカイ
生成AI活用はHOWが大事な理由
junmikai
0
87
2025年の抱負: フリーランスから 正社員に戻るので 組織に貢献します!
junmikai
0
48
Chakra UI v3にバージョンアップしてほぼ別物になった件
junmikai
0
150
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
2
成長するには「重要 VS 緊急」を意識しよう
junmikai
0
7
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
5
目標は「めいそう」が大事。漢字はどう書く?
junmikai
2
17
技術選定で迷ったら『日常』を思い出そう! 〜考え方の新発見〜
junmikai
0
56
今年最も「覚醒」したコーディングテストの舞台裏
junmikai
0
13
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Scaling GitHub
holman
459
140k
It's Worth the Effort
3n
184
28k
Typedesign – Prime Four
hannesfritz
40
2.5k
Transcript
tsoaはいいぞ! APIドキュメントを 自動生成! 三海
純(ミカイジュン)
ミカイ ジュン (三海 純) • 株式会社 ゆめみ •
趣味: もくもく会、アニメ、ラブカ(ラブライブTCG) • 好きな有名人 ◦ 後藤 ひとり ◦ 陸八魔アル ◦ 千早 愛音 ◦ 八木 唯
キャリア • 2020年 ~ 2022年: 受託企業 ◦ フロントエンドエンジニア
• 2022年 ~ 2023年: 自社開発企業 ◦ フロントエンド&バックエンドエンジニア • 2024年: フリーランス ◦ Typescriptでリプレース(技術選定)&開発 • 2025年2月 ◦ 株式会社 ゆめみ 正社員
こんなことありませんか? スキーマ(Open API仕様書) と 実際のレスポンス違うぞ・・・
そして・・・ YAMLファイルを 書いて1日が終わる日々・・・
そんなあなたにおすすめしたいのが tsoa 引用元: https://tsoa-community.github.io/docs/
tsoaとは? tsoa は、TypeScript を使用して Node.js サーバー側アプリケーションを構築するための OpenAPI コンパイラを統合したフレームワークです。
実行時に Express 、hapi、koa などのフレームワークをターゲットにすることができます。 tsoa アプリケーションはデフォルトでタイプセーフであり、実行時の検証をシームレスに処 理します。 英文引用元: https://tsoa-community.github.io/docs/introduction.html
ようするに・・・ ExpressなどのNode.jsフレームワークでコー ドを書くと スキーマを自動生成してくれる!
@Route("users") export class UsersController extends Controller { @Get("{userId}") public async
getUser( @Path() userId: number, @Query() name?: string ): Promise<User> { return new UsersService().get(userId, name); } @SuccessResponse("201", "Created") @Post() public async createUser( @Body() requestBody: UserCreationParams ): Promise<void> { this.setStatus(201); new UsersService().create(requestBody); return; } }
スキーマ自動生成! 引用元: https://tsoa-community.github.io/docs/live-reloading.html
http://localhost:3000/docs で動作確認できる! 引用元: https://tsoa-community.github.io/docs/live-reloading.html
スキーマが自動生成されることで・・・ フロントエンド側でバックエンドの スケジュールに関係なく APIを叩けるようになった!
なぜって・・・?
フロントエンドエンジニアがtsoaで バックエンド実装 すればいいじゃない! (DB通さないで適当なレスポンスを返すのもあり)
おそらく・・・ フロントエンド側も TypeScript使ってることが多いと思うので tsoaを使うことで バックエンド実装がしやすくなる
tsoaがもっと流行ると・・・ フロントエンドエンジニア バックエンドエンジニア というポジションが融合されるかも?
まとめ スキーマを書く手間を 省きたいならtsoaはいいぞ!
ご清聴ありがとうござ います!