【アドベントカレンダー2024】API初心者がPostmanを触ってみた！

いつも記事を読んでいただきありがとうございます！
モブエンジニア（[@mob-engineer](https://qiita.com/mob_engineer))です！

今回は、**Postman Advent Calendar 2024**の企画として「API初心者がPostmanを触ってみた！」について記事を執筆いたしました。

最後まで読んでいただけますと幸いです。

:::note info
**Postman**に関する紹介記事となります。API初心者の視点で**Postmanの触り心地**と**開発での利用シーン**についてまとめております。初見の読者の方でも理解できるように平易な表現で記載していますが、わかりづらいところがあれば、コメントなどをいただけると幸いです。
:::

# 目次
1. 読んでもらいたい読者層
1. なぜ、Postmanを触ろうと思ったのか？
1. Postmanとは何か？
1. Postmanを触ってみた
1. Postmanを触ってみた感想
    1. 良かったところ
    1. 改善したほうがいいところ
1. まとめ
1. Postman学習に役立つ参考サイト

## 読んでもらいたい読者層

次のような悩みを抱えている読者の方にお役立ていただければ幸いです。

1. Postmanの基本的な利用方法について知りたい方

## なぜ、Postmanを触ろうと思ったのか？

現在、社内プロジェクトでFlaskを活用してAPI開発を行っているのですが、そのなかで**API機能を味見するためのツールはないか**といった疑問を抱き、調べた結果、Postmanにたどり着きました。（プロジェクト内では、安定と信頼のSwaggerを活用しています）

また、**自身の開発者としてのスキル向上**と**Postman活用時の備忘録**といった意味合いも持っています。

## Postmanとは何か？

ググってみた結果、次のような結果が出てきました。

>APIのエンドポイントを呼び出し、リクエストを送信し、レスポンスを受け取り、解析するための簡単で直感的なインターフェイスを提供するツール

要するに、**Curlを使わずに、GUI経由でAPIの機能を味見できるツール**と思っていただければ幸いです。

## Postmanを触ってみた

:::note info
アカウント作成方法については以下サイトに分かりやすくまとめられていましたので、そちらをご確認ください。

https://www.tairaengineer-note.com/postman-create-account/

:::

アカウント作成直後のワークスペースについては以下の通りでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/17ce4942-41aa-242b-b84e-185d2b7ae1d8.png)

作成時は何も入っていないので、お手軽にAPIを検証できる**Postman Echo**をフォークしてみようと思います。

- 画面上部の検索ボックスに**Postman Echo**を入力し、検索結果をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/fa3344ae-eca0-3be4-d705-169c4365b38b.png)

- 右側上部にある、**フォーク**をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/26d88ef5-5ba4-6498-8e1f-691c27608b8a.png)

- フォークラベルに任意の名前を入力し**コレクションをフォーク**ボタンをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/0ef6457e-8de4-3b2a-8355-122c5c15076b.png)

- 自分のワークスペースに**Postman Echo**が反映されていることを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/a04ee0f8-bbbd-8dee-b120-1ce79a3493e8.png)

とりあえず、適当なAPIを叩いてみましょう。

- GET Request

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/a5caa2f9-0d13-8632-46ad-c1ab73a289e7.png)

- レスポンス

```json
{
    "args": {},
    "headers": {
        "host": "postman-echo.com",
        "x-request-start": "t=1732453503.062",
        "connection": "close",
        "x-forwarded-proto": "https",
        "x-forwarded-port": "443",
        "x-amzn-trace-id": "Root=1-6743247f-4f9e222476c64a802eac9420",
        "user-agent": "PostmanRuntime/7.42.0",
        "accept": "*/*",
        "cache-control": "no-cache",
        "postman-token": "e5f00a77-9ba2-43eb-8234-5a6232802e0c"
    },
    "url": "https://postman-echo.com/get"
}
```

- POST Form Data

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/921daf09-a42e-e69b-7f94-2afb54bf5b7c.png)

- レスポンス

```json
{
    "args": {},
    "data": "",
    "files": {},
    "form": {
        "foo1": "bar1",
        "foo2": "bar2"
    },
    "headers": {
        "host": "postman-echo.com",
        "x-request-start": "t=1732453621.998",
        "connection": "close",
        "content-length": "19",
        "x-forwarded-proto": "https",
        "x-forwarded-port": "443",
        "x-amzn-trace-id": "Root=1-674324f5-3b7e5e3c463ff1ae6c5ebbf7",
        "user-agent": "PostmanRuntime/7.42.0",
        "accept": "*/*",
        "cache-control": "no-cache",
        "postman-token": "94aa56a4-b16c-442e-b9b4-019fc4a2d9fa",
        "accept-encoding": "gzip, deflate, br",
        "cookie": "sails.sid=s%3AAT2ZQ-EvprxOa92A_YUjqDimyZ8k9W4U.cDz7BCsHxZH2qhj8is2%2BVJkmU0yXnepJmL7D1TsYpDE",
        "content-type": "application/x-www-form-urlencoded"
    },
    "json": {
        "foo1": "bar1",
        "foo2": "bar2"
    },
    "url": "https://postman-echo.com/post"
}
```

- PUT Request

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/0d53071a-068c-6336-d8fd-27b0ef22b13c.png)

- リクエスト

```
{
    "args": {},
    "data": "This is expected to be sent back as part of response body.",
    "files": {},
    "form": {},
    "headers": {
        "host": "postman-echo.com",
        "x-request-start": "t=1732453689.832",
        "connection": "close",
        "content-length": "58",
        "x-forwarded-proto": "https",
        "x-forwarded-port": "443",
        "x-amzn-trace-id": "Root=1-67432539-27b3842c313e0b962aea59ee",
        "content-type": "text/plain",
        "user-agent": "PostmanRuntime/7.42.0",
        "accept": "*/*",
        "cache-control": "no-cache",
        "postman-token": "7ac13bc6-012a-42f3-a0da-c0c6dad09c4e",
        "accept-encoding": "gzip, deflate, br",
        "cookie": "sails.sid=s%3A4-JsDZ7146WF0axZeK2Arm8t3dO2WSR3.2bWBgyb7PteXwAhsREoDvQim695hAO8iVFPeVwrgSAE"
    },
    "json": null,
    "url": "https://postman-echo.com/put"
}
```

- DELETE Request

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/c3a46179-31c9-87d8-b933-33cea6dbe8bb.png)

- レスポンス

```JSON
{
    "args": {},
    "data": "This is expected to be sent back as part of response body.",
    "files": {},
    "form": {},
    "headers": {
        "host": "postman-echo.com",
        "x-request-start": "t=1732453737.132",
        "connection": "close",
        "content-length": "58",
        "x-forwarded-proto": "https",
        "x-forwarded-port": "443",
        "x-amzn-trace-id": "Root=1-67432569-665a8ec35528fa7a3d1f5c5f",
        "content-type": "text/plain",
        "user-agent": "PostmanRuntime/7.42.0",
        "accept": "*/*",
        "cache-control": "no-cache",
        "postman-token": "701d068c-fd40-4dd1-8aef-2d26415d79c7",
        "accept-encoding": "gzip, deflate, br",
        "cookie": "sails.sid=s%3A4-JsDZ7146WF0axZeK2Arm8t3dO2WSR3.2bWBgyb7PteXwAhsREoDvQim695hAO8iVFPeVwrgSAE"
    },
    "json": null,
    "url": "https://postman-echo.com/delete"
}
```

また、Postman Echoの構成を見てみると、API設計で必要な**認証**や**ストリーム処理**など一通りそろっているようなので、最初のうちは、眺めるだけでも勉強になると思います。

また、企業が公開しているAPIなどもフォークして利用可能なので、開発中のプロダクトとの連携時の挙動調査でも活用できるのかなぁと思います。

- 公開しているAPI画面

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/d8f2deab-b072-973d-3e97-20c730e02a75.png)

## Postmanを触ってみた感想

### 良かったところ

個人的に触ってみて良かったところとして次がありました。

- 公式でもチュートリアルドキュメントがある
- Postman上でフォークしてAPIの味見ができる（Gitでの処理がいらない）
- GUI操作のため、API実行に対する抵抗感が少ない
- 企業が公開しているAPIがそろっている

### 改善したほうがいいところ

- 公式ドキュメントが英語のみとなっている
- ベーシックプランだと基本機能しか試せない（エンプラ向けだと、一人当たり月50ドル）
- 個人的にSwaggerの方が見やすい（慣れもあるかと思うが）

正直、Postmanを利用したことがないので**ざっとした感想**しか思いつかなかったが、使いこなせば、**いい感じのAPI開発に役立つ**のかなぁと思いました。

色々調べてみると、学習サイトなどもあるようなので、引き続きキャッチアップしていきたいと思いました。

## Postman学習に役立つ参考サイト
[Postman公式ドキュメント](https://www.postman.com/api-documentation-tool/)
[Postmanコミュニティ](https://community.postman.com/)
[Postman で API Document を作る](https://qiita.com/KoKeCross/items/e1cb7bea5551101c711f)

※Postmanに直結するわけでないが、APIの基本を学ぶ上で以下コンテンツは活用できるかと思います。

[REST WebAPI サービス 設計](https://www.udemy.com/course/rest-webapi-development/)
[Web API: The Good Parts](https://www.amazon.co.jp/dp/4873116864)

最後まで記事を読んでいただきありがとうございます。
本記事が、読者の皆さんにとってお役に立っていただければ幸いです。

引き続き、技術系の記事を執筆いたしますので、温かい目で読んでいただますと幸いです。