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
WebAPI開発のためのOpenAPI入門/entry-open-api
Search
marchin
June 15, 2023
Programming
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebAPI開発のためのOpenAPI入門/entry-open-api
marchin
June 15, 2023
More Decks by marchin
See All by marchin
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
840
Amazon Athenaで気軽に始める データ分析/athena-data-analytics
marchin1989
0
640
AWS Glueではじめるデータレイク
marchin1989
0
750
やさしく入門するOAuth2.0/easy-entry-oauth
marchin1989
8
2.9k
1時間半で克服するJavaScriptの非同期処理/async_javascript_kokufuku
marchin1989
2
1.6k
自動テストでモックするって、なにそれ?おいしいの?/what_is_mocking
marchin1989
1
1.3k
たぶんもう怖くないGit/maybe-not-afraid-of-git-anymore
marchin1989
2
2.8k
モバイルアプリで機械学習入門/introduction-to-machine-learning-in-mobile-app
marchin1989
0
570
Other Decks in Programming
See All in Programming
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
410
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
650
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
310
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
290
一人だけ、Kiroが静止する日
hideg
0
130
Agents on Rails - Rails at Scale 2026
irinanazarova
0
160
What We Talk About When We Talk About XP
m_seki
2
670
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
140
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
120
Java 27新機能 / Java 27 new features
kishida
2
160
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Designing Experiences People Love
moore
143
24k
The Language of Interfaces
destraynor
162
27k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Statistics for Hackers
jakevdp
799
230k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
720
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
290
Transcript
WebAPI開発のためのOpenAPI入門 ~OpenAPI Specificationを利用して開発効率をアップしよう~
自己紹介 名前 :阿部 真之 仕事 :株式会社ゆめみ。サーバーサイド、Androidのリードエンジニア 趣味 :コーヒー、ビール、アニメ、ゲーム、読書、etc… Twitter:@marchin_1989
前置き 対象者 - 業務でAPI仕様書を利用する、作成する方 - OpenAPIを知らない方、触ったことがない方 - OpenAPIでできることを知りたい方 前提とする知識 -
HTTPの基礎知識がある程度あること - API仕様書を利用したことがあること 注意 - 最近流行りの「OpenAI API」ではなく、「OpenAPI」についての話をします。全く別物なので 注意。
- OpenAPIの概要 - OpenAPIの記述 - クライアントコード、サーバサイドコードの自動生成 - モックサーバ作成 - まとめ
アジェンダ
API仕様書のよくある課題 - Excel仕様書が読みづらい、メンテしづらい - フォーマットが統一されていない - API仕様書と実装が一致していない - リクエストやレスポンスのクラス設計と実装が、ほぼAPI仕様書通りなので二度手 間感がある
OpenAPI
OpenAPI - OpenAPI Specificationは、WebAPI(REST)のインターフェースを記述するための 仕様。フォーマット。 - OpenAPI Specificationを、OASといったり、OpenAPI Specといったりする。 -
JSONとYAMLで記述が可能。 - 現在(2023/06/16)の最新バージョンはv3.1.0。 - OASに対応している各種周辺ツール、 サービスの対応状況によっては、 まだv3.0.3、もしくは2系を使う選択肢もある。
OpenAPIのメリット - 書き方が仕様で決まっているおかげで、API仕様書のフォーマットを統一できる。 - OpenAPIの仕様に準拠したツール(プログラム)があり、クライアント、サーバの コードなど、自動生成することが可能。 - OpenAPIのエコシステムに乗っかることで、 さまざまな恩恵あり。
OpenAPI(OAS)の記述
OASの構造 トップレベルに定義できるオブジェクト(OpenAPI Object)をいくつか紹介。 - openapi - 自身のファイル、OASのバージョン。3.1.0や3.0.3など指定。 - info -
このAPIの情報(タイトル、バージョン、作者など)を記述。 - titleとversionが必須。 - paths - APIのエンドポイントを記述。 - メソッドやリクエストパラメータ、レスポンスなどを記述。 出典: OpenAPI - Minimal Document Structure https://learn.openapis.org/specification/structure.html#minimal-document-structure
OASの構造 その他のオブジェクトを紹介。 - components(Components Object) - OASの再利用可能なオブジェクトを記述。 - APIのリクエストやレスポンスなどで参照できる。 -
servers(Server Object) - APIのベースURLを記述。 - URL内に変数を含めることができる。ドメインやポート、バージョンなどを変数で表現可能。 出典: OpenAPI - Reusing Descriptions https://learn.openapis.org/specification/components.html 出典: OpenAPI - API Servers https://learn.openapis.org/specification/servers.html
OpenAPIを記述するためのツール - OASはただのテキストファイルなので、エディタがあれば記述は可能。 - ただし、プレビューなどを利用した方が効率がいいので、ツールを使うのがおすす め。 - 代表的なツール - Swagger
Editor: ブラウザでOpenAPIのYAML(JSON)が記述できる。 - Stoplight studio: よりGUIベースでOpenAPIの記述が可能。 - IDEのplugin
実際に書いてみる(デモ)
クライアントコード、サーバサイドコードの自動生成
モックサーバ作成
OpenAPIのツールを探す方法(おまけ) - 公式がツールをまとめてくれているので参考にするとよい - https://tools.openapis.org/ - 各ツールのメンテ状況や、OASバージョン対応状況を見て判断するといい
まとめ - OpenAPI Specification(OAS)は、WebAPI(REST)のインターフェースを記述す るための仕様。フォーマット。 - API仕様書のフォーマットを統一できる。 - OASを用意すれば、クライアント、サーバのコードを自動生成可能。
参考文献 ・OpenAPI INITIATIVE. https://www.openapis.org/ ・OpenAPI Generator. https://openapi-generator.tech/ ・Software Design 2022年8月号,
技術評論社, 2022 ・Swagger. https://swagger.io/ ・Stoplight. Prism. https://stoplight.io/open-source/prism
ご清聴ありがとうございました!