WebベースAPI基礎と Postmanの使い方
Transcript of WebベースAPI基礎と Postmanの使い方
飯山 克志 (Katsushi Iiyama)Top Out Human Capital 株式会社
December 15th, 2020
WebベースAPI基礎とPostmanの使い方
10時より開始します
Cisco Community Expert Series Community Live
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2
ご参加ありがとうございます。本日の資料はこちらからダウンロードいただけます。https://community.cisco.com/t5/-/-/ba-p/4185061
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 3
[音声ブロードキャスト (Audio Broadcast) ] ウィンドウが自動的に表示され、コンピュータのスピーカーから音声が流れます。
[音声ブロードキャスト (Audio Broadcast) ] ウィンドウが表示されない場合は、[ 通話(Communicate) ] メニューから[音声ブロードキャスト (Audio Broadcast) ] を選択します。
イベントが開始されると自動的に音声が流れ始めます。
音声接続に関する詳細はこちらをご参照ください。解決しない場合は、Q&A ウィンドウより[すべてのパネリスト (All Panelist)] 宛にお知らせください。
https://community.cisco.com/t5/-/-/ta-p/3129991
音声ブロードキャストについて
※ Q&A ウィンドウが画面右側に見つからない場合はここから表示
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 4
ご質問方法
Community Live中のご質問は、画面右側の Q&A ウィンドウからすべてのパネリスト (All Panelist)宛に送信してください。
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 5
エキスパート スピーカー
飯山克志 (Katsushi Iiyama)
Top Out Human Capital株式会社 CTOCCIE #2023 / CCDP / CCSIDevNet 500 / DevNet 2020 / DevNet SpecialistCisco Champion 2019, 2020
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 6
会社紹介とご案内
Top Out Human Capital 株式会社
© 2020 Top Out Human Capital, Inc. All Right Reserved. 7
日本で唯一がここにある!⚫ Cisco 認定ラーニングパートナー (日本で唯一、Collaboration, Security関連コースを実施)
⚫ NetApp 認定ラーニングパートナー (日本で唯一の認定ラーニングパートナー)
⚫ EC-Council 認定トレーニングセンター (Cybersecurity、全てのEC-Council認定コースを唯一実施)
⚫ CompTIAトレーニングパートナー (日本で唯一、Cybersecurity資格に対応する全コースを実施)
⚫ Pythonエンジニア育成推進協会認定スクール (Pythonによる運用&監視の自動化コースを提供)
⚫ Citrix認定ラーニングセンター (日本で唯一、Citrix SD-WANコースを実施)
⚫ HPE Aruba認定トレーニングセンター (国内唯一、Wireless LAN、Switch、Clear Pass)
⚫ F5 認定トレーニングセンター (BIG-IPシリーズ)
⚫ Huawei認定ラーニングパートナー (国内唯一、5G、Wireless LAN 他)
⚫ IoT関連トレーニング (IoTハッキング・セキュリティ、IoT実践ハンズオン)
⚫ Alibaba Cloud ハンズオントレーニング (1日で学べるハンズオン)
⚫ Gigamon 認定トレーニング
⚫ RedHat 認定トレーニング
⚫ ビジネストレーニング (ITILなど)
Katsushi IiyamaTop Out Human Capital 株式会社
December 15th, 2020
Cisco Community Expert Series Community Live
WebベースAPI基礎とPostmanの使い方
【Top Out Human Capital 株式会社共催】
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 9
投票質問 1
シスコの新しい資格DevNetについて、教えてください
1. 資格を取得済み
2. 資格を取得するため勉強中
3. 資格を知ってはいるが、多分取らない
4. 資格を知らなかった。興味がない
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 10
投票質問 2
本日説明するPostmanについて
1. よく使っている
2. 使ったことがある
3. これから使わなければいけない
4. 初めて知った
5. 自分は使わないだろう
© 2020 Top Out Human Capital, Inc. All Right Reserved. 11
はじめに
Postmanのインストール
WebベースAPIの基礎
Postmanについて
リクエスト送信- Postmanを使ってGETのテスト
- Postmanを使ってPOSTのテスト
Postmanから、Pythonコードの出力
認証
さいごに
本日の目次
はじめに
© 2020 Top Out Human Capital, Inc. All Right Reserved. 13
DX (Digital Transformation)
IoT
自動化
アジャイル開発
AI
時代の背景
出典:総務省ホームページ(https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h30/html/nd102200.html)
© 2020 Top Out Human Capital, Inc. All Right Reserved. 14
WebベースAPIの利用例
サーバの作成や、ディスクの追加、ネットワークの変更、監視などを実施
外部プログラムから自動実行
管理画面から操作
利用者
© 2020 Top Out Human Capital, Inc. All Right Reserved. 15
Postmanの用途
Postmanは、API開発のためのコラボレーションプラットフォームです。Postmanの機能は、APIを構築する各ステップを簡素化し、コラボレーションを合理化するため、より優れたAPIをより迅速に作成できます。
APIクライアント迅速かつ簡単に、REST、SOAP、およびGraphQLリクエストを
Postman内で直接送信します。
自動テスト手動テストを自動化し、CI / CDパイプラインに統合して、コードの変更によって本番環境のAPIが
破損しないようにします。
デザイン&モックバックエンドサーバーを設定せずにエンドポイントとその応答をシミュレートすることで、APIの予想される動作を伝達します。
ドキュメンテーションAPIを使いやすくするために、機械で読み取り可能な美しいドキュメントを生成して
公開します。
モニタースケジュールされた間隔でパ
フォーマンスと応答時間をチェックすることにより、APIの状態を
最新の状態に保ちます。
ワークスペースAPIを構築および使用するための共有コンテキストを提供し、組み込みのバージョン管理を使用してリアルタイムでコラボレーション
します。
© 2020 Top Out Human Capital, Inc. All Right Reserved. 16
API フローでの、REQUESTとRESPONSE
HTTP REQUEST
GET
https://devvie/api/hello
HTTP RESPONSE
200 OK
JSON
© 2020 Top Out Human Capital, Inc. All Right Reserved. 17
REST APIに対応している企業の一部
Postmanのインストール
© 2020 Top Out Human Capital, Inc. All Right Reserved. 19
https://www.postman.com/downloads/
Download Postman
© 2020 Top Out Human Capital, Inc. All Right Reserved. 20
ダウンロード後インストール
-アカウント作成
• テストをチーム内で共有
-サインアップせずに利用も可能
インストール
© 2020 Top Out Human Capital, Inc. All Right Reserved. 21
起動後の動作は後程
Postmanの起動
アイコンをクリック
WebベースAPIの基礎
© 2020 Top Out Human Capital, Inc. All Right Reserved. 23
APIにおける基本的な通信
APIサーバー(postman-echo.com)はリクエストを受信し、レスポンスを返します。
Postmanにリクエストの詳細(postman-echo.com/get)を入力し、[Send]ボタンをクリックします。
Postmanは応答を受信し、インターフェースに表示します。①
②
③
© 2020 Top Out Human Capital, Inc. All Right Reserved. 24
基本的なHTTPコンテンツネゴシエーション
XML
HTML
CSV
GET /resource
Accept: text/html
Content-Type: text/html
200 OK
GET /resource
Accept: application/json
406 Not acceptable
利用可能なリソースフォーマット
200OK
© 2020 Top Out Human Capital, Inc. All Right Reserved. 25
HTTPヘッダの基礎 / HTTP Request (要求)
POST /customers HTTP/1.1
User-Agent: Mozilla/4.0
Host: www.example.com
Accept-Language: ja-jp
Connection: Keep-Alive
Content-Type: application/xml
Accept: application/json
<body>
<name>Ichiro</name>
</body>
リクエスト(要求)
メソッド
プロトコルバージョン
リソース
リクエストヘッダ
空行
リクエストボディ
© 2020 Top Out Human Capital, Inc. All Right Reserved. 26
HTTP Resoponse (応答)
HTTP/1.1 200 OK
Server: Apache
Connection: Keep-Alive
Content-Type: application/xml
Content-Length: 256
Date: Tue, 06 Aug 2019, 16:06:00 GMT
Last-Modified: Tue, 06, Aug 2019, 02:55:31 GMT
{
"customer":{
"name":"Ichiro",
"city":"New York",
"id":"51"
}
}
プロトコルバージョン
理由フレーズレスポンスコード
レスポンスヘッダ
空行
レスポンスボディ
ステータス行
© 2020 Top Out Human Capital, Inc. All Right Reserved. 27
プロトコル- サーバのホストがオープンなのか(http)セキュアなのか(https)
サーバまたはホスト- Web サービスを提供するサーバまたはホストのドメイン名またはIPアドレス
リソース- API コールのリソース パスです。通常、パスは、内容を表す複数の英語名詞を
使って構成パラメータ- レスポンス データのフィルタ処理、番号付与、範囲指定などを行うサービスに
関する詳細を指定するパラメータ
URI
http://maps.googleapis.com/maps/api/geocode/json?address=sanjose
サーバまたはホスト リソース パラメータプロトコル
© 2020 Top Out Human Capital, Inc. All Right Reserved. 28
HTTP 命令文 標準的なアクション(CRUD)
説明
POST 作成新しいオブジェクトまたはリソースを作成するために使用例:interface loopback 100を作成
GET 読込システムからリソースの詳細を取得例:ルータが所有するinterface一覧を取得
PUT 更新通常、リソースの置換または更新に使用、変更または作成に使用例:interface loopback 100のip addressを変更
PATCH 更新リソースに関するいくつかの詳細を変更するために使用例:logging monitor informationalを有効に変更
DELETE 削除システムからリソースを削除例:interface loopback 100を削除
HTTP メソッド: 何をするか?
CRUDとは、Create(作成)、Read(読み込み)、Update(更新)、Delete(削除)を略した言葉です。
© 2020 Top Out Human Capital, Inc. All Right Reserved. 29
APIの通信の例
© 2020 Top Out Human Capital, Inc. All Right Reserved. 30
ステータスコード ステータスメッセージ 意味
200 OK すべて正常
201 Created 新しいリソースが作成された
400 Bad Request リクエストが無効
401 Unauthorized 認証が見つからない、あるいは正しくない
403 Forbidden リクエストの解釈は行われたが許可されない
404 Not Found リソースが見つからない
500 Internal Server Error サーバ側に何らかの問題がある
503 Service Unavailable サーバがリクエストを完遂できない
レスポンスステータスコード:リクエスト結果の確認方法
Postmanについて
© 2020 Top Out Human Capital, Inc. All Right Reserved. 32
Postmanの起動
© 2020 Top Out Human Capital, Inc. All Right Reserved. 33
menu 説明
Create a request(Requestを作成)
GET/POST/PUT/DELEなど15種のメソッドに対応したRequestを作成する
Create a collection(Collectionを作成)
Requestを管理するCollectionを作成するベンダが作成したCollectionなども数多く存在するため、ダウンロードして利用も可能
Create an environment(環境変数の管理)
環境変数機能を使用して、接続先ごとに異なるクレデンシャルの一括管理や、変数の管理などを行うことができる
Create an API(APIの設計)
(サインイン時のみ利用可能)APIビルダーを使用して、Postmanで直接APIを設計できます。
View More Create documentation、Create a mock server、create a monitorなど他にも豊富な機能多数
Menuの紹介
© 2020 Top Out Human Capital, Inc. All Right Reserved. 34
各部の説明 ヘッダーバー
サイドバービルダー
© 2020 Top Out Human Capital, Inc. All Right Reserved. 35
メニューバー紹介
© 2020 Top Out Human Capital, Inc. All Right Reserved. 36
コレクション
© 2020 Top Out Human Capital, Inc. All Right Reserved. 37
コレクション – 認証
© 2020 Top Out Human Capital, Inc. All Right Reserved. 38
PostmanをもちいたDashboard APIの使用http://postman.meraki.com/
Click
ブラウザからの利用も可能
© 2020 Top Out Human Capital, Inc. All Right Reserved. 39
Importが可能
© 2020 Top Out Human Capital, Inc. All Right Reserved. 40
メソッドの使用例
© 2020 Top Out Human Capital, Inc. All Right Reserved. 41
環境変数の管理(Manage Environments)
リクエスト送信
© 2020 Top Out Human Capital, Inc. All Right Reserved. 43
1. メソッドにGETを選択
2. URL (https://postman-echo.com/get/)を入力
3. Send を押して送信
初めてのリクエスト送信
© 2020 Top Out Human Capital, Inc. All Right Reserved. 44
初めてのリクエスト送信(続き)
レスポンス詳細
レスポンスステータス
レスポンスボディ
形式
© 2020 Top Out Human Capital, Inc. All Right Reserved. 45
Responseヘッダの確認
© 2020 Top Out Human Capital, Inc. All Right Reserved. 46
1. メソッドを選択
2. URL (https://postman-echo.com/get/)を入力GETパラメータはここでは入れない
3. Paramsタブを選択して、GETのパラメータを、KeyとValueを分けて入力
4. Sendボタンを押して、サーバにアクセスする
パラメータを追加してアクセス
GETメソッドURLを入力
Paramsタブ
パラメータ
Sendをクリック
© 2020 Top Out Human Capital, Inc. All Right Reserved. 47
サーバからの返答
c
© 2020 Top Out Human Capital, Inc. All Right Reserved. 48
テストは保存することができます。Saveボタンで上書き保存、Saveボタン右の矢印ボタンで、Save as(別名保存)もできます。
テスト環境の保存方法
© 2020 Top Out Human Capital, Inc. All Right Reserved. 49
複数のテスト環境を開く
+ボタンでテスト環境を開く
保存されたテスト環境
© 2020 Top Out Human Capital, Inc. All Right Reserved. 50
テスト環境を複製する方法
現在使っているTabを複製し、新しいテスト環境を作る
© 2020 Top Out Human Capital, Inc. All Right Reserved. 51
1. メソッドにPOSTを選択します。
2. URL (https://postman-echo.com/post/)を入力パラメータはここでは入れない
3. Paramsタブを選択して、POSTデータを、Key, Value に分けて入力する
4. Send を押して送信する
POSTのテスト
© 2020 Top Out Human Capital, Inc. All Right Reserved. 52
POSTのテスト(続き)
Postmanから、Pythonコードの出力
© 2020 Top Out Human Capital, Inc. All Right Reserved. 54
Codeの出力
認証
投票質問 3
DevNet Sandboxについて
1. よく使っている
2. 使ったことがある
3. これから使わなければいけない
4. 初めて知った
5. 自分は使わないだろう
© 2020 Top Out Human Capital, Inc. All Right Reserved. 57
Url: https://sandboxdnac2.cisco.com/Username: dnacdevPassword: D3v93T@wK!
DevNet Sandbox
© 2020 Top Out Human Capital, Inc. All Right Reserved. 58
① Basic 認証
PostmanでRequestを作成する
GETメソッドを選択し、URLを入力する
Authorizationタブを選択し、Basic Authを選択する
Username、passwordを入力する
Sendボタンをクリックする
Method GET
URL https://sandboxdnac2.cisco.com
Username dnacdev
Password D3v93T@wK!
© 2020 Top Out Human Capital, Inc. All Right Reserved. 59
① Basic 認証(続き)Method GET
URL https://sandboxdnac2.cisco.com
Username dnacdev
Password D3v93T@wK!
© 2020 Top Out Human Capital, Inc. All Right Reserved. 60
② Token認証Method POST
URL https://sandboxdnac2.cisco.com/api/system/v1/auth/token
Username dnacdev
Password D3v93T@wK!
© 2020 Top Out Human Capital, Inc. All Right Reserved. 61
② Tokenを変数に代入
戻り値(Token)をglobal変数に代入することが可能
Testsタブを選択し、戻り値を変数に代入するコードを記入
let json = JSON.parse(responseBody)
let ok = responseCode.code == 200
if(ok){
pm.globals.set('token',json.Token)
}
© 2020 Top Out Human Capital, Inc. All Right Reserved. 62
右上のボタンをクリック
Globalsをクリック
代入された変数の確認
© 2020 Top Out Human Capital, Inc. All Right Reserved. 63
認証ができない場合
© 2020 Top Out Human Capital, Inc. All Right Reserved. 64
② Tokenを利用
Headersタブを選択
KEY,VALEを入力
Key VALUE
X-auth-token {{token}}
© 2020 Top Out Human Capital, Inc. All Right Reserved. 65
Paramsタブ
フィルタ
Key VALUE
softwareType IOS-XE
さいごに
© 2020 Top Out Human Capital, Inc. All Right Reserved. 67
関連コースの紹介
DevNet関連コース https://www.topout.co.jp/cisco
-DevNet Associate対応コース
• DEVASC (Developing Applications and Automating Workflows using Cisco Core Platforms)
-DevNet Specialist / Professional対応コース
• DEVCOR (Developing Applications Using Cisco Platforms and APIs)
-前提条件のPythonの習得に https://www.topout.co.jp/python
• Python 初級編・中級編・ネットワーク編・自動化編・サーバ編
ご清聴ありがとうございました
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 70
Thank You
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 71
Q&A 画面右側の Q&A ウィンドウから、すべてのパネリスト (All Panelist) 宛に送信してください。
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 72
次回のオンラインセミナー予定
[タイトル]Wireless TAC Time -今すぐ現場に効くTips紹介-
[日程]2021 年 1 月 27 日 (水) 10:00 - 11:05
[スピーカー]大崎秀行(Hideyuki Osaki)シスコシステムズグローバル カスタマー エクスペリエンス センターテクニカル コンサルティング エンジニア
※詳細は、シスコ コミュニティ トップページや ニュースレターなどでご案内しております。
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 73
シスココミュニティの歩き方
https://community.cisco.com/t5/-/-/ta-p/4021064
© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 74
ご参加ありがとうございました。
Community Liveと Cisco Communityの各アンケートにも ぜひ ご協力ください。
Community LiveアンケートはWebexセッション終了後に自動表示、Cisco Communityアンケートは後ほどメールさせて頂きます