CodeIgniterでRESTful API開発入門!初心者でも基礎からわかる徹底解説
生徒
「最近よく聞く『API』って何ですか?CodeIgniterで作れると聞いたのですが……。」
先生
「APIは、アプリとアプリが情報をやり取りするための『窓口』のようなものです。PHPのフレームワークであるCodeIgniterを使えば、その窓口をとても効率的に作ることができますよ。」
生徒
「プログラミング初心者でも、APIを作ることはできるんでしょうか?」
先生
「もちろんです!まずはAPIやRESTfulといった基礎知識から順番に学んでいきましょう。」
1. API(エーピーアイ)って一体なに?
プログラミングを始めたばかりだと、「API」という言葉を難しく感じるかもしれませんね。APIは「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略称です。もっと簡単に言うと、「プログラム同士が会話をするためのルール」のことです。
例えば、あなたがレストランに行ったときを想像してみてください。あなたは「お客さん」、料理を作る人は「シェフ」です。しかし、あなたとシェフが直接会話をすることは少ないですよね?そこで登場するのが「ウェイターさん」です。あなたはウェイターさんに注文を伝え、ウェイターさんがシェフに伝え、料理が運ばれてきます。この「ウェイターさんの役割」こそがAPIなのです。
Webの世界では、スマートフォンのアプリがサーバーにあるデータを欲しいとき、APIというウェイターさんにお願いをして、データを持ってきてもらいます。この仕組みを理解することが、API開発の第一歩です。
2. RESTful API(レストフル・エーピーアイ)の考え方
APIの中でも、現在世界中で最も広く使われているスタイルが「REST(レスト)」、または「RESTful API」と呼ばれるものです。これは、特定のルールに従って作られたAPIのことです。
RESTful APIには、大きく分けて4つの「やりたいこと(メソッド)」があります。これを普段の生活で例えると以下のようになります。
- GET(ゲット): 情報を取得する(メニューを見る)
- POST(ポスト): 新しい情報を登録する(新しく注文する)
- PUT(プット): 情報を更新する(注文内容を変更する)
- DELETE(デリート): 情報を削除する(注文をキャンセルする)
このように、やりたい操作を明確に区別するのがRESTful APIの特徴です。CodeIgniterはこのRESTfulな仕組みを簡単に作れる機能が備わっています。
3. PHPフレームワーク「CodeIgniter」とは?
CodeIgniter(コードイグナイター)は、PHPというプログラミング言語を使ってWebサイトやシステムを作るための「道具箱(フレームワーク)」です。プログラミングを一から全て自分で書くのは非常に大変ですが、CodeIgniterを使えば、よく使う機能が最初から用意されているため、開発スピードが格段に上がります。
CodeIgniterの特徴は、動作が非常に軽快で、設定がシンプルなことです。他のフレームワークに比べて覚えるべきルールが少ないため、初心者の方が最初に触れるフレームワークとしても非常に人気があります。API開発においても、この「シンプルさ」は大きな武器になります。複雑な手順を踏まずに、すぐにデータのやり取りができる窓口を作成できるからです。
4. JSON(ジェイソン)形式のデータを理解しよう
API開発で絶対に避けて通れないのが「JSON」というデータの形式です。APIは「ウェイターさん」だと説明しましたが、ウェイターさんが料理を運ぶとき、お皿に乗せて運びますよね?その「お皿の形」がJSONです。
JSONは、人間が見てもわかりやすく、コンピューターにとっても読み取りやすい形式です。CodeIgniterでAPIを作るときは、最終的にデータをこのJSON形式に変換して、アプリやブラウザに返してあげます。
例えば、ユーザーの名前と年齢を伝えるJSONは、以下のような書き方になります。
// PHPの連想配列という箱にデータを入れる
$data = [
'name' => '田中太郎',
'age' => 25,
'city' => '東京'
];
// これをJSONという形式に変換して表示する
echo json_encode($data);
実行結果は以下のようになります。
{"name":"\u7530\u4e2d\u592a\u90ce","age":25,"city":"\u6771\u4eac"}
5. MVCモデルとAPIの関係性
CodeIgniterは「MVC」という設計図に従って作られています。MVCは「Model(モデル)」「View(ビュー)」「Controller(コントローラー)」の頭文字を取ったものです。API開発においてもこの考え方は非常に重要です。
通常のWebサイト制作では、ViewがHTML(画面の見た目)を担当しますが、API開発ではViewが必要ありません。 なぜなら、APIの目的は「画面を見せること」ではなく「データを渡すこと」だからです。そのため、Controllerで受け取ったデータを、先ほど説明したJSON形式に変えて直接出力する、という流れになります。
この「見た目を作らなくて良い」という点が、API開発がシンプルで楽しいと言われる理由の一つでもあります。データそのものに集中してプログラミングを楽しむことができます。
6. ルーティングの設定を知っておこう
APIを公開すると、外部から特定のURLに対してアクセスが来ます。そのアクセスを「どのプログラムで処理するか」を交通整理するのが「ルーティング」という機能です。CodeIgniterでは、Routes.phpというファイルでこの設定を行います。
例えば、「ユーザーの一覧が欲しい」というリクエストが来たときに、「UserControllerのindexというメソッド(処理)を使いなさい」と指示を出すイメージです。これを設定しないと、APIはどこにアクセスすれば良いのか迷子になってしまいます。
// Routes.php での設定イメージ
// "api/users" というURLにGET(取得)でアクセスされたら、Usersクラスのindexを動かす
$routes->get('api/users', 'Users::index');
// "api/users" にPOST(登録)でアクセスされたら、Usersクラスのcreateを動かす
$routes->post('api/users', 'Users::create');
7. API開発におけるコントローラーの役割
APIの中心人物はコントローラーです。コントローラーは、リクエストを受け取り、必要なデータを集め、最終的に結果を返す指揮者のような存在です。CodeIgniterには、API作成をより便利にするための「ResourceController」という特別なクラスが用意されています。
これを使うと、GETやPOSTなどの命令を自動的に判別して、適切な処理に振り分けてくれるようになります。初心者の方は、まずこの便利な機能があることを覚えておきましょう。
// コントローラーでの簡単な処理例
public function index() {
$message = [
'status' => 'success',
'message' => 'APIからの応答です!'
];
// JSONとしてデータを返却する(CodeIgniter4の便利な書き方)
return $this->respond($message);
}
8. データベースとの連携(Modelの活用)
APIでやり取りする情報の多くは、データベースに保存されています。ユーザー情報、ブログの投稿、商品の在庫など、大切なデータは全てデータベースの中にあります。このデータベースから値を取り出したり、新しい値を保存したりするのが「Model(モデル)」の役割です。
CodeIgniterでは、SQLというデータベース専用の難しい言葉をあまり使わなくても、直感的にデータを操作できる「Query Builder(クエリビルダー)」という機能があります。これを使えば、「名前が田中の人を10件持ってきて」といった命令を簡単にプログラムで書くことができます。
9. HTTPステータスコードという重要な合図
APIがデータを返すとき、データ本体だけでなく「通信が成功したかどうか」を数字で伝えます。これを「HTTPステータスコード」と呼びます。皆さんも「404 Not Found(ページが見つかりません)」という数字を見たことがあるのではないでしょうか?これもステータスコードの一種です。
API開発でよく使うコードは以下の通りです。
- 200 OK: 成功!無事にデータが送れました。
- 201 Created: 成功!新しいデータが登録されました。
- 400 Bad Request: 失敗。リクエストの仕方が間違っています。
- 404 Not Found: 失敗。指定されたデータが存在しません。
- 500 Internal Server Error: 失敗。サーバー側のプログラムでエラーが起きました。
この数字を適切に返すことで、APIを使っている相手(アプリ開発者など)は、「あ、今は成功したんだな」「あ、自分の送ったデータにミスがあったんだな」と判断できるようになります。
10. 開発を便利にするツール「Postman」
API開発を始めるとき、一つだけインストールしておくと便利なツールがあります。それが「Postman(ポストマン)」です。通常、APIはプログラムから呼び出すものなので、ブラウザだけで動作確認をするのが難しい場合があります(特にPOSTやDELETEなどの操作)。
Postmanを使えば、ボタン一つでAPIにデータを送ったり、返ってきたJSONを確認したりできます。プログラムを一行書くごとに、Postmanで「正しく動いているかな?」とチェックしながら進めるのが、プロの開発現場でも一般的なスタイルです。まずは「APIをテストする道具があるんだな」と頭の片隅に置いておいてください。
// APIの動作テスト用コード例
public function test_api() {
$result = [
'test' => '動作確認中',
'date' => date('Y-m-d H:i:s')
];
// 画面にJSONとして出力
header('Content-Type: application/json');
echo json_encode($result);
exit;
}
実行結果は以下のようになります。
{"test":"\u52d5\u4f5c\u78ba\u8a8d\u4e2d","date":"2026-01-08 13:15:18"}