プログラムで生活をHACKする

YRen-LaB

Postman

PostmanでWebAPIを呼ぶ

更新日:




一気に記載したので随時加筆修正は行う。

Postmanとは

WebAPI開発がめちゃくちゃ捗るツール(語彙力...
以下のことができる

  1. APIクライアントとしてREST、SOAP、GraphQLリクエスト
    ※ただ2020/02現在、GraphQLはベータ版の様子
  2. 自動テスト
    1つ1つWebAPIを手で実行するのではなく、事前に用意したスクリプトを実行することで
    WebAPIを自動実行することが可能
  3. ドキュメント生成
    etc.

詳しくは公式で
↓↓↓
Postman

Postmanのダウンロード

ダウンロードはこちら
Postman for Windowsを入手する
Mac、Linux版もある

ダウンロードしてPostman起動するとユーザー登録促されるが登録しなくても使える。

WebAPIにRequest

WebAPIへRequetするまでの手順を記載していく。

RequestURL

RequetURLを記載する
ここに貼り付けるURLに既にQueryStringが付与されている場合、
Paramタブに自動でマッピングされる

Method

HttpMethodを選ぶ
PostmanはGET,POST,PUT,DELEATEのメジャーなMethodは勿論、
普段あまり見ないようなものにも対応している

QueryString

パラメータを設定していく
該当箇所にパラメータのKeyとValueを設定するとQueryStringとして自動で設定される。
勿論チェックを外すことでQueryStringからも外れる。

同じkeyでValueが異なるQueryを用意しておき、
パターンによってON、OFFすることで毎回書き換える手間も省ける

RequestHeader

PostmanのHeaderにはあらかじめTemporary Headersとして値が設定されている
値を上書きした場合、上書きしたいKey名で記載することで可能

RequestBody

RequetBodyは以下の種類から選択可能

  1. none
    説明割愛
  2. form-data
  3. x-www-form-urlencoded
    KeyとValueを設定するだけなので説明割愛
  4. raw
  5. binary
    ファイルを選択するだけなので説明割愛
  6. GraphQL
    紹介のみ

form-data

form-dataでは右のドロップダウンリストから
物理ファイルと通常の文字列を選択することができる
ファイル選択もエクスプローラーから選択できるので簡単

raw

textをはじめ、json,html,xml,javascript
の形式でRequetを記載することが可能
写真はJSONで記載

GraphQL

昨今WebAPIの代替として話題に上がるGraphQL
Postmanではベータ版として使用可能

Authrization

Postmanでは複数の認証方式をサポートしている

今回は使用したことがある

  1. API Key
  2. OAuth2.0
    について記載する

API Key

API keyでは設定した値をHeaderで送るのかQueryStringとして送るのか選択できる

設定した値については"Send"を押下した際に
HeaderだったらHeaderタブに、QuesyだったらParamタブに反映される

OAuth2.0

手軽にトークン発行できるAPIを知らないので画像が一部無いので手順だけを...

OAuth2.0を使用するには"Get New Access Token"を押下する。

ダイアログがポップするので必要情報を入力し、"Request Token"を押下する
認証するサイトのログイン画面が出ると思うのでユーザー情報を入力して認証すると
アクセストークンが発行される。

Preview Requestを押下することで、API KeyのようにParamかHeaderに設定することができる

コレクションの保存

設定したRequestは保存することができ、いつでも読み込める。
保存するにはCollectionと言われるRequestをまとめるためのフォルダ的なものを作成する必要があるため
画像の部分をクリックしCollectionを作成する

Requestを保存するには"save"を押下する。
デフォルトでRequestURLが入っている部分にはAPI名を入れるとわかりやすい。
そして保存するCollectionを選んで保存すればよい

コレクション配布

Collectionは配布することができる。
これによって、テスターが実行しバグが見つかった事象を開発者が再現させることもできたり
後続でプロジェクトに入った人にも容易に実行環境を提供することができる

配布側

Collectionの右にある「・・・」からExportを選択する

そのままExport押下

問題なければ指定したフォルダにjsonファイルが出力される

受領側

Postman左上にある"import"を押下

exportされたjsonファイルを選択 or ドラッグアンドドロップ

終わり!既にCollectionがある場合はCopyとしてimportされる

環境変数

異なるAPIで同じ値を使用することって結構ある
OAuthのアクセストークンとかなんちゃらIDとか

それらの値が変更される度に全てのAPIの値変更するのは面倒くさい

Postmanでは環境変数が使える

設定

Postman右上の歯車から環境ファイルを作成する

環境ファイル名と環境変数名および値を入れる。
INITIAL VALUEがexportして共有する際にCURRENT VALUEが自分の実行で使用されたはず
両方入れておけば問題ない。

作成されると環境ファイル名で一覧に追加される。
いくつでも作れるので、テスト用、受入用、本番用のように環境ごとに作成することも可能

編集する時は対象の環境ファイル名をクリックすることで編集できる

利用

URL,Body,Header

作成した環境変数の使い方はPostmanの右上で
No Enviromentとなっているドロップダウンリストに作成した環境ファイルがでるため
そこで選択する。

かつ、RequestURL、Body、Headerなどに{{環境変数}}とすることで使用できる

Requestの内容
環境変数で指定した箇所がValueの値になっている

testsを用いた環境ファイルの自動設定

もう1つの使い方としてResponseの値を環境変数に入れることもできる
そのためには、testタブにスクリプトを記載する必要がる。

右側にはExampleがあり、初めての人でもやりたいことを記述しやすい

画像のスクリプトはステータスコードが200だったら
Responseのcsnを環境変数の"testID"に代入するもの。

環境ファイルの値を確認すると、ResponseBodyの値と同じものが入っている

exportとimport

環境ファイルもexportとimportすることができる

export

exportの仕方は右上の歯車アイコンから環境設定のダイアログが開くのでExportする

環境ファイル名は
xxxxx.postman_environment.json
となる

import

importは環境設定のダイアログからimportを押下し、ファイルを選択することで可能。
環境ファイルはCollectionと違ってCopyのようにはならないので注意

WebAPI自動実行

WebAPIが増えると手で実行するのは面倒くさい。
Postmanではそんな方のためにテスト自動実行機能がある

Postman左上のRunnerを押下すると
自動テスト用のWindowがポップする

そのWindowで自動テストするCollection、使用する環境ファイル
その他設定をする

Collectionを選択するとAPI単位で実行するかどうか選べる。
※実行される順番は上からの点に注意。WebAPIに実行順序がある場合は上に持っていく必要がある。

RunTestCollectionを押下すると自動実行が開始される。
ここで評価されるのはtestsタブにスクリプトが記載されているAPIのみ。
記載されていないAPIは評価すらされない。(実行はされる)

下図の上のAPIはtestsの記載がないため評価されていない。
下はtestsの評価が正しく行われている

※Runnerで評価されるのはあくまでtestsの内容である。
WebAPIが正常終了ならPassedになるわけではない。

例えばtestsに
responseCode.code === 400
と記載していたらWebAPIのStatusCodeが200(正常終了)
だったとしてもtests上は不正のため、Failedとなる。

まとめ

キャプチャの数が多く、いつにも増して誤字脱字が目立つ...
1回で書ききれなかったものや思い出したことは随時記載していこうかなと。

この記事を読んでPostman導入してみようかなという方が増えればいいなと思います。





単純作業にお悩みではありませんか?

何百とあるワードを検索してファイルにまとめたり 数ある商品情報から条件にあるものだけ目で探してリ...

その単純作業プログラムで解決できるかもしれません。 もしよろしければ単純作業からの解放をお手伝いさせてください。

詳しくは以下のページからDM、または見積もり相談お願い致します。

お仕事依頼 ・ 見積もり依頼

adsense




-Postman
-,

Copyright© YRen-LaB , 2021 AllRights Reserved Powered by AFFINGER4.