📘

Postman Collection の型定義機能

に公開

先日Postman主催のLaunchPadという新機能を紹介するイベントが開催され、その場でコレクション(テスト用APIコールを管理・実行するサービス)にパラメータの型定義機能が紹介されていました。
https://t.co/f1unUo3YHx

YouTubeでも動画が公開されていますので興味はある方はやってみてください。
https://www.youtube.com/watch?v=st60BBWRLRU

Collection と型定義

Postman Collectionではテスト用APIコールを束として管理が可能です。

このようにPOSTで投げ込むクエリパラメーターや、ヘッダー、実行前後でデータ処理を行うスクリプト、など様々な機能がそろっています。
従来このクエリーパラメーターは固定値を入力するか、変数を指定するかでしたが型の定義はありませんでした。このため慣れていないAPIを操作する場合、本来数値が欲しいところに文字列を入力したり、数値を入力するにしてもその上限下限を超えた値を入力してしまったり、というケースが発生しました。
今回のアップデートでそれらを定義しておくことができるようになり、よりチーム間でのAPIコール共有がスムーズになります。

さっそくやってみる

0.コレクションの作成

まずはいつも通り神サイトであるRequestCatcherで適当なPOSTのAPIコールを作成し保存します。
https://requestcatcher.com/

1.型定義機能の有効化

作成されたコレクション(APIコールそのものではなく、それが格納されている親フォルダ)を選択して、タイプを有効化にするをクリックします。

POSTで投げ込むクエリーパラメータを設定すると四角いボックスのようなアイコンが右側に出てきます。

クリックを行うと設定ダイアログが出てきます。

2.型の設定

Type 以下の4つから指定可能です。

-string
-integer
-number
-boolean

まずはintegerを設定します。
Required,Deprecated
本来Deprecatedは非推奨や普段は使わない、という意味ですが、Postman上でこれはRequiredとの選択型になっています。つまり必須かオプションか、という違いです。
Default Value
入力がなければ自動で用いられる値を設定します。
ただし何も入力されない場合値が自動で補完されるわけではないようです。あくまでコレクション作成者がほかのチームメンバーにテスト対象のAPI諸元を伝えるための機能と認識したほうがよさそうです。設定が行われた後パラメータにマウスを持っていくと、設定の期待値が表示されるようになります。

あとはいつも通り送信をクリックします。

注意点
この型の機能は、定義されている以外の値を入力しても動作はします。型定義と異なる値を入力すると以下のように注意が表示されます。このためTypeScriptなどの様に型を強制させる機能ではないことに注意してください。

3. その多機能:enum

このようにあらかじめ入力が可能な値がパターンとして決まっている場合、それをenumという形式で定義しておくことができます。

入力は,区切りで行います。
こうすることで入力補完が効くようになりテスト時に正しい期待された値を入力することが簡単になります。

ただし先ほどの注意点と同様に範囲から外れた値を入力しテストを実行することが可能です。

型定義はあくまでガイドライン(バリデーションではない)

定義をしたにもかかわらず、それ以外の値でも普通に動作するのは一見不可思議に思えますが、これはPostmanの利用シーンを考えるとわかりやすいと思います。Postmanは基本APIテストプラットフォームであり、意図的にエラーを起こしたり、不正な値をAPIに投げ込むケースも多くあります。このため、型定義では正しい期待値のみを入力しておきつつも、動作はそれ以外でも動く、という仕様ととなっています。

変数との組み合わせ

このように型定義されているパラメータにも入力値としてPostmanの変数を普通に使用することが可能です。

Discussion