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
29
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 ミカイ
今からフロントエンドを0から勉強するならSvelteもありかも
junmikai
0
57
生成AI活用はHOWが大事な理由
junmikai
0
140
2025年の抱負: フリーランスから 正社員に戻るので 組織に貢献します!
junmikai
0
86
Chakra UI v3にバージョンアップしてほぼ別物になった件
junmikai
0
720
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
15
成長するには「重要 VS 緊急」を意識しよう
junmikai
0
12
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
26
目標は「めいそう」が大事。漢字はどう書く?
junmikai
2
41
技術選定で迷ったら『日常』を思い出そう! 〜考え方の新発見〜
junmikai
0
83
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Optimizing for Happiness
mojombo
379
70k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Done Done
chrislema
185
16k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
A Tale of Four Properties
chriscoyier
160
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
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はいいぞ!
ご清聴ありがとうござ います!