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.4k
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
1
70
開発終了後こそ成長のチャンス!プロダクト運用を見送った先のアクションプラン
ohmori_yusuke
2
160
学生の時に開催したPerl入学式をきっかけにエンジニアが組織に馴染むために勉強会を主催や仲間と参加して職能間の境界を越えていく
ohmori_yusuke
2
480
やりっぱなしで終わらない勉強法
ohmori_yusuke
2
370
OpenAPIにも静的解析とフォーマッターを導入して快適にスキーマ定義する
ohmori_yusuke
2
260
スクラムフェスに参加した
ohmori_yusuke
1
400
新卒エンジニアが組織に馴染むために勉強会を主催してチームの壁を越える
ohmori_yusuke
1
430
CGIプログラムを書いてみた
ohmori_yusuke
1
180
”私だけ”の技術発信から”仲間と”技術発信に変化するために
ohmori_yusuke
4
370
Other Decks in Programming
See All in Programming
ヤプリ新卒SREの オンボーディング
masaki12
0
130
C++でシェーダを書く
fadis
6
4.1k
Realtime API 入門
riofujimon
0
150
CSC509 Lecture 09
javiergs
PRO
0
140
初めてDefinitelyTypedにPRを出した話
syumai
0
400
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
110
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
880
Quine, Polyglot, 良いコード
qnighy
4
640
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
Amazon Qを使ってIaCを触ろう!
maruto
0
400
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Designing the Hi-DPI Web
ddemaree
280
34k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Unsuck your backbone
ammeep
668
57k
Statistics for Hackers
jakevdp
796
220k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Thoughts on Productivity
jonyablonski
67
4.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Embracing the Ebb and Flow
colly
84
4.5k
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