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
API Gatewayをswaggerでサクサク作ろう!
Search
Takayuki Fuwa
February 21, 2020
Technology
0
94
API Gatewayをswaggerでサクサク作ろう!
JAWS UG札幌(2020/2)で登壇した内容です。
API Gatewayをswaggerでサクサク作ろう!
Takayuki Fuwa
February 21, 2020
Tweet
Share
More Decks by Takayuki Fuwa
See All by Takayuki Fuwa
Backlogの「カスタム属性」東雲研究所での利用例
yue
0
570
AzureとWindows Virtual Desktopで新しいリスクに立ち向かおう
yue
0
250
なるほどわかった!SORACOMファーストなるほどわかった!SORACOMファーストステップ
yue
0
660
JAWS FESTA 2019 Sapporo 地方で生きる
yue
0
280
なるほどわかった!マルチリージョンとマルチクラウドの話
yue
0
1.1k
なるほどわかった!Azure AppServiceでゆるくWebサイトを公開しよう!
yue
1
770
なるほどわかった!Azure NotebooksとAzure Machine Learning
yue
0
660
なるほどわかった!Alibaba CloudとDevOps
yue
0
420
なるほどわかった!Azure Kubernetes Service(AKS)
yue
3
860
Other Decks in Technology
See All in Technology
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
100
Lambdaと地方とコミュニティ
miu_crescent
2
370
いざ、BSC討伐の旅
nikinusu
2
780
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
720
Engineer Career Talk
lycorp_recruit_jp
0
130
Can We Measure Developer Productivity?
ewolff
1
150
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
190
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
490
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
280
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
31
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Language of Interfaces
destraynor
154
24k
For a Future-Friendly Web
brad_frost
175
9.4k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
A better future with KSS
kneath
238
17k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Transcript
なるほどわかった! API Gatewayをswaggerで サクサク作ろう! 不破 崇行
自己紹介 • 不破 崇行(ふわ たかゆき) / 31歳独身男性 • 所属 •
エコモット株式会社(9:00〜18:00) / FASTIO開発チーム / 主任 • 東雲研究所(19:00〜22:00) / 代表 • コミュニティ • JAZUG札幌(きたあず) / Azureもくもく会札幌の宴会係 • SORACOM UG 札幌 / などなど • 好きなAWSサービス • CloudWatch • 趣味 • シメパフェ • Alexaいじり
エコモットの概要 (お昼の仕事) • 設立 • 2007年2月19日 • 所在地 • 本社:札幌市
• 拠点:東京 / 青森 / 仙台 / 北信越 / 東海 / 関西 / 九州 • 社員数 • 108名(2019年4月1日現在、臨時従業員を含む) • スローガン • “あなたの「見える」を、みんなの安心に”
東雲研究所 (夜の仕事) • 営業時間 • 平日19:00〜22:00 • 土曜 10:00〜22:00 •
業務内容 • テクニカルコンサルティング • WordPressプラグイン開発 • サーバ構築・保守 • その他オーダーメイド
JAWS FESTA 2019サポーター
Visual Studio Codeのリリースノートに 名前が載る
今日伝えたい事 API Gatewayすごい!!
今日伝えたい事 Swagger楽しい!!
API Gatewayをザックリと • 自分でWebサーバやロードバランサを立ち上げなくても APIサービスを構築出来るAWSのサービス • マイクロサービス向けAWSサービスの風雲児
マネジメントコンソール
API Gatewayの良いところ • マネジメントコンソール上でポチポチ手軽にAPIを定義していくことが出来る • CloudWatchとX-Rayとシームレスに連携出来る。 • Lambdaの動きを把握するのにX-Ray超便利 • 内部にCloudFrontを使用しているため、大量アクセスにも耐えられる
• API Gatewayからのレスポンス生成にLambdaを使える • Lambdaで内部ロジックを実装し、API Gatewayで返すことが出来る • Websocketも使えるし、バイナリファイルも転送出来る
API Gatewayのここがツライ! • APIの規模がどんどんデカくなってくると、GUIで一々操作するのがツライ • 本番環境と検証環境との「冪等性」を維持するのがツライ • というか無理 • 1エンドポイント1メソッドごとにCORSの設定を全部するとか
正気の沙汰じゃ無い これが1セット。これをPOST/GET/PUT/DELETEで4回。
出来る事ならAPIはコードで定義したい • 出来る事なら、CloudFormationやTerraformみたいなノリでJSONとか YAMLで定義しておきたい。 • 出来る事なら、一撃でデプロイしたい!
そこでSwagger(OpenAPI)ですよ! • YAML or JSON形式でRESTFul APIを記述できるフォーマット
Swaggerとは • OpenAPIという規格に準拠した実装 • YAML or JSONで記述する • AWSに限らず、Azureなど他のクラウドサービスでも採用されている
Swaggerのどえらい所 • コード化出来るので、検証環境・本番環境の冪等性を担保出来る • 「開発環境と本番環境で動きが違うぞ!?」というよくあるパターンを解決出来る • 今までWordやExcelで作ってきた「API仕様書」を自動生成してくれる
Swagger Editor • ブラウザで動くSwaggerのエディタ • Dockerコンテナ版もあるよ • yaml上のコードエラーを一番正確にあぶり出せるツール
VS Codeでも書ける • VSCode Extensionをインストールすると、VS Code上でもプレビューできる • Swagger Viewer •
OpenAPI Editor
試し撃ちも出来る
定義書も作れる • さらばExcel方眼紙
API Gatewayへぶち込む
AWS限定の設定(Lambdaなど)も出来る OpenAPIの中にAWS専用の定義を入れられる。 この場合は、コールされた後に発火するLambda関数を指定している
まとめ • API Gatewayをサクサク扱いたいなら、Swaggerを使おう