1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的アドカレAdvent Calendar 2024

Day 1

React + PostmanモックサーバーでAPIコール処理をやってみる

Last updated at Posted at 2024-12-01

はじめに

フロントエンド開発において、バックエンドAPIの開発待ちの状態になることもあると思います。そんなときには、Postmanのモックサーバー機能活用できそうです。本記事では、Postmanのモックサーバー機能を使って簡単にAPIをモックとして作成し、Reactで作ったフロントのUIからコールする処理を実装していきます。

環境

  • React:18.3.1
  • Vite:6.0.1
  • tailwindcss:3.4.15
  • Postman Mock Server

本記事で書かない事

  • Tailwind CSSの設定手順
  • Vite、React の環境構築

ゴール

Postman Mock Serverを作成しフロントからコールしてレスポンスを取得できることを確認する。
作成するUIイメージは次の通りです。

mockapi-postman.gif

1. Postmanでモックサーバーを作成する

簡単なユーザー情報を返すAPIを想定したモックサーバーを作成します。

1. 左側メニューの「Mock Servers」→「Create Mock Server」をクリック
2. 以下の情報を入力:

  • Method: GET
  • URL: /api/users
Response Body
{
  "users": [
    {
      "id": 1,
      "name": "ほげほげ太郎1",
      "role": "user"
    },
    {
      "id": 2,
      "name": "ほげほげ太郎2",
      "role": "user"
    }
  ]
}

image.png

3. 「Next」→「Create Mock Server」をクリック

image.png

4. 生成されたモックサーバーのURLをコピーしておきます。

モックサーバーの動作確認

試しにPostmanからコールしていみます。
Mock servers > 作成したモックAPI > View collection Docs > Openrequest からコールしてみると、レスポンスが想定通り返ってくることを確認できました。

response
   {
     "users": [
       {
         "id": 1,
         "name": "ほげほげ太郎1",
         "role": "user"
       },
       {
         "id": 2,
         "name": "ほげほげ太郎2",
         "role": "user"
       }
     ]
   }

image.png

フロント部分の作成

次に、モックサーバーから取得したデータを表示するフロント部分をReactで実装します。

import { useState } from 'react'

interface User {
  id: number
  name: string
  role: string
}

function App() {
  const [users, setUsers] = useState<User[]>([])
  const [loading, setLoading] = useState(false)

  const handleClick = async () => {
    setLoading(true)
    try {
      const response = await fetch('対象のAPI')
      const data = await response.json()
      setUsers(data.users)
    } catch (error) {
      console.error('Error:', error)
    }
    setLoading(false)
  }

  return (
    <div className="min-h-screen flex items-center justify-center">
      <div className="p-8 w-full max-w-md">
        <button 
          onClick={handleClick}
          disabled={loading}
          className="w-full bg-blue-500 text-white px-4 py-2 rounded disabled:bg-gray-400"
        >
          {loading ? 'Loading...' : 'ユーザ一覧を取得'}
        </button>

        <div className="mt-4 space-y-4">
          {users.map(user => (
            <div key={user.id} className="p-4 border rounded">
              <div className="font-bold">{user.name}</div>
              <div className="text-gray-600">{user.role}</div>
            </div>
          ))}
        </div>
      </div>
    </div>
  )
}

export default App

モックAPIをコールしてみる

実装したアプリケーションを起動し、実際にモックサーバーからデータを取得してみます。

npm run dev

ユーザ一覧を取得 を押下するとPostman のモックサーバで作成しておいた2つのユーザデータを取得できている事を画面上で確認できました。

mockapi-postman.gif

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?