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
2k
OpenAPI を守るのは難しい
OOC 2024 当日参加LTの資料です
https://ooc.connpass.com/event/305241/
uutan1108
March 24, 2024
Tweet
Share
More Decks by uutan1108
See All by uutan1108
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
720
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
5.7k
勉強会から始まった僕のDevRel~新卒エンジニアがつないだ2年間の軌跡~
ohmori_yusuke
2
440
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
310
アニメがエンジニアをつなぐ!「エンジニアニメ」勉強会が巻き起こすCo-Creationの波
ohmori_yusuke
0
280
組織が大きく変わろうとするとき、自分はどうありたいかを考えている
ohmori_yusuke
19
7.3k
技術以外をきっかけに交流するエンジニア向け勉強会
ohmori_yusuke
0
180
デザインって“感覚”だけじゃないVibe Codingからの気づき
ohmori_yusuke
3
220
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
280
Other Decks in Programming
See All in Programming
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
290
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
500
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
620
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
580
モダンOBSプラグイン開発
umireon
0
180
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
210
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
110
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
250
存在論的プログラミング: 時間と存在を記述する
koriym
5
510
飯MCP
yusukebe
0
380
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
130
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Discover your Explorer Soul
emna__ayadi
2
1.1k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
For a Future-Friendly Web
brad_frost
183
10k
Building Applications with DynamoDB
mza
96
7k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
160
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
410
Technical Leadership for Architectural Decision Making
baasie
3
300
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