Postman小技集

# はじめに

Postmanを実務で使っていて地味に使う小技シリーズを紹介します。他にも思い出したら随時追記します。
テストとか大技は扱いません。

# URLの一部をパスパラメータ化

`:変数名` でパスパラメータ化

before
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/ea539483-84da-f795-98f0-f9f628e09a97.png)

after
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/6ada2a35-dce3-1855-d4ee-2e9b5782cc72.png)

リクエスト時にバインドしてくれます。




# 変数利用

グローバル、環境ごと、コレクションごとに変数を持つことができます。変数化したいパラメータを選択して `Set as variable` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/1f76a135-4f25-4280-2931-d28d21efc8d0.png)

`Set as new variable` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/44f5252a-d740-a139-a513-f9de7f423832.png)

変数名やスコープを入力して、 `Set Variable` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/b4301418-f1a5-fafc-92ea-19fcd805b7cf.png)

変数化されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/76b233f8-4d18-e51b-2115-985642e3b4a8.png)

GraphQLの場合、Query側は変数化できませんが、GraphQL Variables 側のJSONを変数化することで対応できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/b7dc2353-846e-8ce4-efcf-bc808cb17769.png)


環境ごとにも値を設定できるので、例えば、開発・STG・本番などの環境を作っておいてAPIのベースパスを切り替えることができます。

例）
開発なら、`http://localhost:8080` に向けてリクエストし、STGなら `https://stg.example.com` にリクエストする場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/ad16345b-533c-33e4-9c7b-bc8bdef7fbb0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/a9c375f3-a5f7-6820-4dee-ecd8981dfe49.png)


認証用のシークレットキーなどはVaultに設定し、重要な情報をローカルマシンに秘匿することができます（デスクトップエージェント前提）。

参考）

https://qiita.com/KameMan/items/e91ceafd52cb208fe1b0

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/ba848874-4644-1326-519a-614d85299cf4.png)

# curlなど他のスニペットとの相互変換

他のチームにこうやって打鍵してくださいと伝えるときに `curl`コマンドを連携する（される）場合などに。

 postman -> 他のスニペット
右側の `Code` タブを選択するとスニペットが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/905eb5b5-e762-3a6f-48dd-aae1304c5c10.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/b0227a28-50d1-f2fd-0747-eecef4006edf.png)

curl以外にも色々あります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/49dc8b64-1ba4-9536-fb61-da4648b5af78.png)

:::note alert
ちなみに、スニペットをコピーすると、せっかくVaultに保存したものもバインドされるので注意
:::

```
curl --location 'https://stg.example.com/orders/12345' \
--header 'x-api-key: aaaa'
```

他のスニペット -> postman

左上 `Import` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/9edc1f71-5a4e-93c2-a787-858099734651.png)

入力欄にcurlコマンドをコピペ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/4e339e48-4f64-f64a-0a87-f4aad778aa6c.png)

解析結果や保存先を表示してくれるので Importする（保存するかは使い道次第）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619165/02fda55e-ed58-6b0c-7523-2c9167779c0b.png)

curlじゃなくてOpenAPIなどなどもいけます。

# OAuth2.0のアクセストークの発行・リフレッシュトークンを用いた自動再発行

個人的には最近一番の感動。詳細な説明は以下ご参照ください。

参考）

https://zenn.dev/sakanafish9114/articles/4b258dcc6956d6

https://qiita.com/yokawasa/items/b4d89d983bfd23792788