CodeIgniter4でAPIを使用してランダムユーザーを生成する方法
今回は前回の天気情報取得に引き続き、APIを使用して簡単なアプリケーションを作成してみます。
今回のテーマは「ランダムユーザー生成」です。Random User Generatorを使って、ランダムなユーザーのプロフィールを取得し、webページ上に表示する仕組みを実装してみます。
前提
- Ubuntu 22.04
- PHP 8.1.2
- CodeIgniter 4.5.1
Random User Generatorとは
Random User Generatorは、名前やメールアドレス、住所などのランダムなユーザーデータを返すAPIです。開発中にサンプルユーザーデータが必要なときに便利なAPIで、使い方も非常に簡単です。
ただ、日本人のデータは存在しないため、日本人のデータが必要な場合は利用するのは難しいかもしれません。
APIのエンドポイントは以下のとおりです:
https://randomuser.me/api/
このエンドポイントにアクセスすることで、ランダムに生成されたユーザーの情報をJSON形式で取得できます。
手順
1. CodeIgniter 4のセットアップ
CodeIgniter4の環境がまだ用意されていない場合は、前回の天気情報取得の記事と同様に、ばねさんの「CodeIgniter4のインストール」を参考に、環境を構築してください。
2. コントローラの作成
まず、新しいコントローラを作成します。
php spark make:controller RandomUser
生成された RandomUser.php
ファイルを開き、以下のコードを追加します。
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class RandomUser extends BaseController
{
public function index()
{
return view('random_user_form');
}
public function fetchUser()
{
$apiUrl = "https://randomuser.me/api/";
$client = \Config\Services::curlrequest();
try {
$response = $client->get($apiUrl);
$data = json_decode($response->getBody(), true);
if (isset($data['results'][0])) {
return view('random_user_result', ['user' => $data['results'][0]]);
} else {
return view('random_user_form', ['error' => 'ユーザー情報の取得に失敗しました。']);
}
} catch (\Exception $e) {
return view('random_user_form', ['error' => 'APIリクエスト中にエラーが発生しました。']);
}
}
}
ここでは、
- fetchUser メソッドで Random User Generator を呼び出し、ランダムなユーザー情報を取得
- 正常にユーザー情報が取得できた場合は random_user_result ビューにデータを渡し、失敗した場合はエラーメッセージを random_user_form ビューに表示
- curlrequest サービスを利用して HTTP リクエストを行い、API からのレスポンスを処理
という動作をしています。
3. ビューの作成
次に、ユーザー情報を入力・表示するためのビューを作成します。
app/Views/random_user_form.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ランダムユーザー生成</title>
</head>
<body>
<h1>ランダムユーザー生成</h1>
<a href="/randomuser/fetchUser">
<?= csrf_field() ?>
<button type="submit">ランダムユーザーを取得</button>
</a>
<?php if (isset($error)): ?>
<p style="color: red;"><?= esc($error) ?></p>
<?php endif; ?>
</body>
</html>
app/Views/random_user_result.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ランダムユーザー結果</title>
</head>
<body>
<h1>ランダムユーザー情報</h1>
<p>名前: <?= esc($user['name']['first'] . ' ' . $user['name']['last']) ?></p>
<p>メール: <?= esc($user['email']) ?></p>
<p>住所: <?= esc($user['location']['street']['name'] . ', ' . $user['location']['city']) ?></p>
<p>国: <?= esc($user['location']['country']) ?></p>
<img src="<?= esc($user['picture']['large']) ?>" alt="ユーザーの画像">
<a href="/randomuser">他のユーザーを取得</a>
</body>
</html>
4. ルートの設定
app/Config/Routes.php
ファイルを開き、ルートを追加します。
$routes->get('/randomuser', 'RandomUser::index');
$routes->get('/randomuser/fetchUser', 'RandomUser::fetchUser');
5. アプリケーションの実行
アプリケーションを実行して、ランダムなユーザー情報を取得できるか試してみましょう。
php spark serve
で、アプリケーションを起動し、「ランダムユーザーを取得」ボタンを押下してみます。
のように、正しくランダムユーザーの情報を取得できることを確認できました。
さいごに
今回は、CodeIgniter4を使ってRandom User Generatorからランダムなユーザー情報を取得し、表示するシンプルなアプリケーションを作成しました。前回の天気情報取得に続き、APIの活用方法を学ぶことができたかと思います。
この記事が皆さんのPHPとAPIの理解を深める一助となれば幸いです。
この記事を書いた人
- モノを売るより創りたいという想いで、約5カ月間の独学期間を経て、営業職からエンジニアへ転職。現在は、ソリューション事業部のWebエンジニアとして、主にシステムの開発・運用に従事している。趣味は料理と釣り。
この執筆者の最新記事
- 2024年11月19日WEBCodeIgniter4でAPIを使用してランダムユーザーを生成する方法
- 2024年8月22日WEBCodeIgniter4でAPIを使用して天気情報を表示する方法
- 2024年6月28日WEB.envファイルを使わずにCodeIgniter4で環境変数を設定する方法
関連記事
最新記事
FOLLOW US
最新の情報をお届けします
- facebookでフォロー
- Twitterでフォロー
- Feedlyでフォロー