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
開発効率を上げるSwaggerの話
Search
ykagano
April 06, 2018
Programming
0
1.3k
開発効率を上げるSwaggerの話
WEBエンジニア勉強会#06 発表資料
ykagano
April 06, 2018
Tweet
Share
More Decks by ykagano
See All by ykagano
プレイングマネージャーになったときの話
ykagano
2
1.3k
WEBエンジニアが知っておきたい決済の仕組み
ykagano
2
3.4k
プロジェクトにおけるリーダブルコードの考え方
ykagano
2
2.1k
GWにスマートスピーカーアプリを作ってみた
ykagano
1
1.2k
Other Decks in Programming
See All in Programming
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
1
330
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
560
DMMオンラインサロンアプリのSwift化
hayatan
0
300
チームリードになって変わったこと
isaka1022
0
180
Lottieアニメーションをカスタマイズしてみた
tahia910
0
110
Rails アプリ地図考 Flush Cut
makicamel
1
110
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
130
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
1
160
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
210
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
360
AHC041解説
terryu16
0
580
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
230
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
128
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
9
1.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
530
Producing Creativity
orderedlist
PRO
343
39k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
It's Worth the Effort
3n
184
28k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Automating Front-end Workflow
addyosmani
1367
200k
Transcript
開発効率を上げる Swaggerの話 @ykagano
1 ▪⾦融系のエンジニアです • SIerの会社 : 電⼦マネーシステムの受託開発 • 電⼦マネーの会社 : Web/スマホアプリ開発・企画
• Web系の会社 : 決済関連のWeb開発 イマココ 加賀野 祐@ykagano
開発効率を上げる Swaggerの話 1. はじめに 2. まず動かしてみる 3. Swagger YAMLを⾒る 4.
APIモックを作る 5. さいごに 2
突然ですが開発に疲れてませんか? 3
Swaggerを使うとこれだけ楽になります 4 ・REST APIの仕様を⾒るのが楽 ・REST APIの実⾏ツールを作るのが楽 ・REST APIの仕様を書くのが楽 ・REST APIのモックを作るのが楽
ということを聞いて⾊々調べたので ここで発表します 5 内容が間違っていたらあとでこっそり教えてください
開発効率を上げる Swaggerの話 1. はじめに 2. まず動かしてみる 3. Swagger YAMLを⾒る 4.
APIモックを作る 5. さいごに 6
Swagger-Editorというオンラインツールを使います 7 まず動かしてみる http://editor.swagger.io/ ※httpsは標準のサンプルがクロスドメインで動かなかった
8 左のウィンドウにyaml形式でAPIの仕様を書くと 右のウィンドウに仕様書がリアルタイムで反映されます
書き上がったら「Generate Server」から ⽣成するサーバーアプリケーションを選択します ここではサクッと動かすため「nodejs-server」を選択します 9
ダウンロードしたzipを解凍して Terminalから解凍したフォルダ内に移動します 10 サーバーが起動しました
11 http://localhost:8080/docs をブラウザで開く 仕様書が⾒える
12 APIが叩ける
元々サンプルとして⽤意されている 13 http://petstore.swagger.io/v2/pet/1 をローカルサーバーから叩いています http://petstore.swagger.io/ を開くとサンプルAPIの仕様書が⾒れます
14 ・REST APIの仕様を⾒るのが楽 ✅ ・REST APIの実⾏ツールを作るのが楽 ✅ ・REST APIの仕様を書くのが楽 ・REST
APIのモックを作るのが楽 ここまでで2つクリア
開発効率を上げる Swaggerの話 1. はじめに 2. まず動かしてみる 3. Swagger YAMLを⾒る 4.
APIモックを作る 5. さいごに 15
16 1. メタデータとサーバー情報の記述 2. エンドポイントの記述 3. モデル定義の記述 サンプルを削ったので⾒ていきます yamlにはざっくりこの3点を書きます
17 1. メタデータとサーバー情報の記述
18 2. エンドポイントの記述
19 3. モデル定義の記述
20 ほら簡単でしょ?
21 ・REST APIの仕様を⾒るのが楽 ✅ ・REST APIの実⾏ツールを作るのが楽 ✅ ・REST APIの仕様を書くのが楽 ✅
・REST APIのモックを作るのが楽 ここまでで3つクリア
開発効率を上げる Swaggerの話 1. はじめに 2. まず動かしてみる 3. Swagger YAMLを⾒る 4.
APIモックを作る 5. さいごに 22
突然ですがオンラインツールだと セキュリティに不安がありませんか? 23
当たり前ですが オフライン版もあります 24 公式 https://swagger.io/swagger-editor/ ソース https://github.com/swagger-api/swagger-editor
Editorをインストールして起動します 25 // git cloneだと重かったので、配布URLからzipでwget $ wget https://codeload.github.com/swagger-api/swagger-editor/zip/master $ unzip
master $ cd swagger-editor-master $ npm install $ npm start あとはオンラインエディタと 使い⽅は同じです
26 ホスト名を書かなければlocalhostが APIサーバーになります
27 APIを叩くと常に同じレスポンスが返ります
28 レスポンスを変えるには yamlでexampleを指定するか seviceフォルダのjsを直接編集します
29 ・REST APIの仕様を⾒るのが楽 ✅ ・REST APIの実⾏ツールを作るのが楽 ✅ ・REST APIの仕様を書くのが楽 ✅
・REST APIのモックを作るのが楽 ✅ これで全部クリア
開発効率を上げる Swaggerの話 1. はじめに 2. まず動かしてみる 3. Swagger YAMLを⾒る 4.
APIモックを作る 5. さいごに 30
今⽇の話はあくまで基本的な使い⽅です REST APIのソースコードにアノテーションを記述して ・ソース=ドキュメント ・ソース=実⾏ツール にしたりもできる(らしい それでは 31
32