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
OpenAPI を守るのは難しい
Search
uutan1108
March 24, 2024
Programming
2
1.6k
OpenAPI を守るのは難しい
OOC 2024 当日参加LTの資料です
https://ooc.connpass.com/event/305241/
uutan1108
March 24, 2024
Tweet
Share
More Decks by uutan1108
See All by uutan1108
「何か」を求めて参加したカンファレンスから持ち帰ってきた「熱」を維持して、活用するために
ohmori_yusuke
2
310
1人150秒、2人で5分 LT
ohmori_yusuke
2
74
Tidy First?個人で実践する経験主義的ソフトウェア設計を読んでみた感想
ohmori_yusuke
2
57
今年始めた 「アニメから得た学びを発表会」
ohmori_yusuke
2
1.9k
行き当たりばったりの二年
ohmori_yusuke
1
360
技書博に参加したら執筆できた
ohmori_yusuke
1
1.8k
開発終了後こそ成長のチャンス!プロダクト運用を見送った先のアクションプラン
ohmori_yusuke
2
300
学生の時に開催したPerl入学式をきっかけにエンジニアが組織に馴染むために勉強会を主催や仲間と参加して職能間の境界を越えていく
ohmori_yusuke
2
660
やりっぱなしで終わらない勉強法
ohmori_yusuke
3
520
Other Decks in Programming
See All in Programming
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
140
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
110
Datadog Workflow Automation で圧倒的価値提供
showwin
1
100
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
930
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
4
310
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
190
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.1k
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.5k
Jakarta EE meets AI
ivargrimstad
0
230
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.1k
GAEログのコスト削減
mot_techtalk
0
130
Ça bouge du côté des animations CSS !
goetter
2
140
Featured
See All Featured
KATA
mclloyd
29
14k
Adopting Sorbet at Scale
ufuk
74
9.2k
Facilitating Awesome Meetings
lara
52
6.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Typedesign – Prime Four
hannesfritz
40
2.5k
Building Adaptive Systems
keathley
40
2.4k
Scaling GitHub
holman
459
140k
Faster Mobile Websites
deanohume
306
31k
The Invisible Side of Design
smashingmag
299
50k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
360
Unsuck your backbone
ammeep
669
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Transcript
OpenAPI を守るのは難しい Object-Oriented Conference 2024 LT うーたん
自己紹介 • うーたん • 新卒サーバーサイドエンジニア ◦ 株式会社ゆめみ • 趣味 ◦
アニメを見ること • X ◦ @uutan1108 2 月刊I/O 3月号、4月号に 「プログラミング& 実行できるWEBアプリを手作り」 掲載されたので読んでね
詳細はこちらのスライドを読んでください https://speakerdeck.com/kentaroutakeda/laravel-openapiniyoru-xin-kunai-sukimaqu-dong-kai-f 武田 憲太郎 さんのスライドです
目次 - OpenAPI とは - OpenAPI の自動生成を使わず開発 - 自動化、コードに取り込ませて守らせる -
終わりに
OpenAPI とは
OpenAPI とは - API(application programming interface)の仕様をJSONやYAMLファ イルで記述できる - APIのエンドポイント、パラメータ、レスポンスなどの定義ができる -
インタラクティブなドキュメントを生成できる - さまざまなプログラミング言語でAPIクライアントのコードを 自動生成できる OpenAPI仕様とは、使いやすい記述ツールをご紹介! https://apidog.com/jp/blog/what-is-openapi/
OpenAPI とは - API(application programming interface)の仕様をJSONやYAMLファ イルで記述できる - APIのエンドポイント、パラメータ、レスポンスなどの定義ができる -
インタラクティブなドキュメントを生成できる - さまざまなプログラミング言語でAPIクライアントのコードを 自動生成できる OpenAPI仕様とは、使いやすい記述ツールをご紹介! https://apidog.com/jp/blog/what-is-openapi/
OpenAPI とは - API(application programming interface)の仕様をJSONやYAMLファ イルで記述できる - APIのエンドポイント、パラメータ、レスポンスなどの定義ができる -
インタラクティブなドキュメントを生成できる - さまざまなプログラミング言語でAPIクライアントのコードを 自動生成できる OpenAPI仕様とは、使いやすい記述ツールをご紹介! https://apidog.com/jp/blog/what-is-openapi/
OpenAPI から interface を自動生成できる
APIクライアントのコードを自動生成できる - 自動生成するツールに OpenAPI Generator がある - TypeScript のコードを OpenAPI
Generator を使って生成 すると interface が生成される - API を利用するときに生成された interface を使う
OpenAPI (YAML) https://zenn.dev/overflow_offers/articles/20220620-openapi-generator
自動生成
https://zenn.dev/overflow_offers/articles/20220620-openapi-generator TypeScript (interface)
OpenAPI (YAML) に従ってそれぞれ実装する A P I バックエンド フロントエンド OpenAPI を変更して実装も
変更する
OpenAPI (YAML) に従ってそれぞれ実装する A P I バックエンド フロントエンド 自動生成されたコードを使う 自動生成されたコードを使う
OpenAPI (YAML) に従ってそれぞれ実装する A P I バックエンド フロントエンド 自動生成されたコードを使う 自動生成されたコードを使う
OpenAPI を信じてもらえる
フロントエンドもバックエンドも自動生成したコー ドを使えば... OpenAPI と実装に乖離がなくなるはず
OpenAPI の自動生成を使わず開発
OpenAPI で定義した仕様を信じている A P I バックエンド フロントエンド API の定義を実装するぞ API
からのレスポンスを 受け取って処理するぞ
OpenAPI で定義した仕様を信じている A P I バックエンド フロントエンド スキーマは人間 が書く!
OpenAPI で定義した仕様を信じている A P I バックエンド フロントエンド OpenAPI から 自動生成はしない!
OpenAPI の自動生成を使わず開発を続ける
OpenAPI を変更しなくても、 実装に影響ないし... 実装を変更してから OpenAPI も変更してもらお
OpenAPI からコードを生成しないので、 仕様書のように変更されなくなる...
OpenAPI (YAML) に従ってそれぞれ実装する A P I バックエンド フロントエンド OpenAPI のメンテ追いつかん
OpenAPI で定義した仕様を守らなくなる A P I バックエンド フロントエンド レスポンスを知りたかったら 俺のコードを見ろ!
OpenAPI で定義した仕様を守らなくなる A P I バックエンド フロントエンド レスポンスを知りたかったら 俺のコードを見ろ! OpenAPI
の仕様は信じない...
悲しい A P I バックエンド フロントエンド レスポンス知りたかったら 俺のコードを見ろ! OpenAPI の仕様は信じない...
人力でメンテは無理だよ...
バックエンドの実装にフロントエンドが依存 A P I バックエンド フロントエンド レスポンスを知りたかったら 俺のコードを見ろ! バックエンドのレスポンスを確認 するか...
インターフェース(API)ではなく バックエンドの実装にフロントエンドが 依存するようになる
なんでOpenAPI を守らなくなるのか...
自動化、コードに取り込ませて守らせる
OpenAPI から自動生成させる A P I バックエンド フロントエンド OpenAPI から生成した interface
に合わせて実装しろ!
生成したインターフェースを守らせる A P I バックエンド フロントエンド OpenAPI を変更しないで実装のレ スポンスを変更させない!
バックエンドの実装を見なくても OpenAPI を見れば分かる A P I バックエンド フロントエンド OpenAPI をメンテするね
メンテしないと実装できないからね
まとめ
実装に合わせて OpenAPI を書くのではなく OpenAPI を変更してから実装に反映したい
宣伝
None
2024. 5.12 Sun 11:00 - 16:00
OOC 2024 のアフターイベントします
ご清聴ありがとうございました🙇 42