Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
OpenAPI を守るのは難しい
Search
uutan1108
March 24, 2024
Programming
2.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OpenAPI を守るのは難しい
OOC 2024 当日参加LTの資料です
https://ooc.connpass.com/event/305241/
uutan1108
March 24, 2024
More Decks by uutan1108
See All by uutan1108
勉強会の懇親会が苦手な人も楽しめる場をつくりたい
ohmori_yusuke
5
1.4k
四畳半神話大系から学ぶ判断における経験の必要性
ohmori_yusuke
1
55
エンジニアとQAエンジニアを繋いでくれた振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
0
290
Designing a Cross-Disciplinary Engineering Community Through Anime
ohmori_yusuke
3
130
コミュニティ・勉強会を作るのは目的じゃない
ohmori_yusuke
1
430
映画のエンドロール風の動画を自動生成するツールを作った
ohmori_yusuke
2
160
アウトプットは“成果物”じゃなく“副産物”だった話
ohmori_yusuke
1
180
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
1k
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
6.3k
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
Distance field of Julia set
kinakomoti321
0
300
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
290
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
180
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
930
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
230
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
160
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
オーケストレーション記述言語 Katari
yukikurage
0
240
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
The Invisible Side of Design
smashingmag
301
52k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
500
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
A Soul's Torment
seathinner
8
3.9k
The Curse of the Amulet
leimatthew05
3
17k
Deep Space Network (abreviated)
tonyrice
0
410
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
820
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