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
21
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
30
生成AI活用はHOWが大事な理由
junmikai
0
120
2025年の抱負: フリーランスから 正社員に戻るので 組織に貢献します!
junmikai
0
76
Chakra UI v3にバージョンアップしてほぼ別物になった件
junmikai
0
470
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
5
成長するには「重要 VS 緊急」を意識しよう
junmikai
0
10
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
15
目標は「めいそう」が大事。漢字はどう書く?
junmikai
2
28
技術選定で迷ったら『日常』を思い出そう! 〜考え方の新発見〜
junmikai
0
73
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Designing for humans not robots
tammielis
253
25k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
What's in a price? How to price your products and services
michaelherold
246
12k
KATA
mclloyd
29
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
33
5.9k
How to Ace a Technical Interview
jacobian
277
23k
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はいいぞ!
ご清聴ありがとうござ います!