PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
生徒
「PHPでデータをやり取りできるAPIを作れると聞いたんですが、本当に初心者でも作れるんでしょうか?」
先生
「もちろんできますよ。PHPはサーバー側の処理が得意なので、REST APIを作るのにも向いています。少しずつ仕組みを理解すれば誰でも作れるようになります。」
生徒
「REST APIってそもそも何なのかわからないです…。説明してもらえますか?」
先生
「わかりました。まず仕組みから説明して、そのあとにPHPでの具体的なAPIの作り方を順番に見ていきましょう。」
1. REST APIとは?初心者でも理解できる基本の考え方
REST API(レスト エーピーアイ)とは、インターネットを通じてシステム同士が「必要な情報をやり取りするための共通の窓口」のことです。私たちが普段使っているスマートフォンのSNSアプリや天気予報、ネットショッピングなどの裏側では、このAPIが常に働いています。例えば、アプリを開いた瞬間に最新のニュースが表示されるのは、アプリがAPIという窓口を通じてサーバーに「最新データをください」とリクエストし、サーバーがそれに応えてデータを送り返しているからなのです。
RESTという言葉は、特定のルールに従ってデータをやり取りする設計思想を指します。このルールがあるおかげで、Webサイト、iPhoneアプリ、Androidアプリなど、異なる種類のサービスからでも「同じ方法で、同じデータ」に安全にアクセスできるようになっています。
イメージしにくい場合は、レストランの「注文カウンター」を想像してみてください。客(アプリ)がメニュー(リクエスト)を見て料理を頼むと、店員(API)が厨房(サーバー)から料理(データ)を運んできてくれます。PHPを使えば、この「注文を受けてデータを返す窓口」を誰でも簡単に作ることができます。
プログラミング未経験の方でも、まずは「REST APIはデータ専用の郵便受けのようなもの」と考えておけば大丈夫です。まずは、PHPで最もシンプルな「挨拶を返すだけのAPI」を作って、その仕組みを体験してみましょう。
<?php
// 1. 返すデータの種類が「JSON」であることをブラウザに伝える設定
header("Content-Type: application/json; charset=UTF-8");
// 2. APIが返したい情報を「連想配列(名前付きのデータ)」として準備
$response = [
"status" => "success",
"message" => "こんにちは!これが初めてのREST APIレスポンスです。",
"date" => date("Y-m-d H:i:s"),
"note" => "このデータはPHPによって自動生成されました。"
];
// 3. 配列を「JSON形式」という世界共通のデータ形式に変換して出力
echo json_encode($response, JSON_UNESCAPED_UNICODE);
?>
このコードをブラウザで実行すると、画面にはお洒落なデザインではなく、文字が並んだ「JSON(ジェイソン)」形式のデータが表示されます。一見地味に見えますが、この「文字だけのデータ」こそがコンピュータにとっては最も扱いやすい形なのです。
プログラムのポイントは json_encode という関数です。これを使うことで、PHPで作ったデータを、アプリや他のシステムが理解できる「共通言語」に変換しています。このように「リクエストに対して決まった形式でデータを投げ返す」という流れが、REST API開発のすべての基本となります。まずはこのシンプルな仕組みが、世界中の便利なサービスの土台になっていることを知っておきましょう。
2. REST APIで使うHTTPメソッドを覚えよう
REST APIを使いこなすために欠かせないのが「HTTPメソッド」という考え方です。これは、私たちがWebブラウザでページを見たり、ボタンを押したりするときに裏側で送られている「命令の種類」のことです。
イメージしやすいように例えると、市役所の窓口に行くようなものです。同じ窓口(URL)でも、「住民票を見せてほしい(取得)」のか、「新しく転入届を出したい(登録)」のか、目的によって出す書類や手続きが違いますよね。APIでも、サーバーに対して「何をしてほしいか」を明確に伝えるための合図がHTTPメソッドなのです。
初心者がまず覚えるべき基本の4種類は以下の通りです。これらは「CRUD(クラッド)」と呼ばれ、データ操作の基本セットになっています。
- GET(ゲット):情報を「取得」する。掲示板を見る、商品一覧を表示するなど。
- POST(ポスト):新しい情報を「登録」する。新規アカウント作成や、投稿ボタンを押したときなど。
- PUT(プット):情報を「更新(上書き)」する。プロフィール画像の変更や、パスワードの更新など。
- DELETE(デリート):情報を「削除」する。不要になったデータの消去など。
PHPでAPIを作るとき、今どのメソッドでアクセスされているかは $_SERVER["REQUEST_METHOD"] という特別な変数を見るだけで簡単に判別できます。まずは、自分がどの命令を送ったのかを教えてくれる「魔法の鏡」のようなプログラムを作ってみましょう。
<?php
// ブラウザに「これはJSONデータですよ」と教える設定
header("Content-Type: application/json; charset=UTF-8");
// 今、どのHTTPメソッドでアクセスされたかを取得する
$method = $_SERVER["REQUEST_METHOD"];
// 返したいメッセージを準備
$message = "";
// メソッドの種類によって、日本語の説明を変えてみる
if ($method === "GET") {
$message = "あなたはデータを「取得(GET)」しようとしています。";
} elseif ($method === "POST") {
$message = "あなたは新しいデータを「作成(POST)」しようとしています。";
} else {
$message = $method . "メソッドでアクセスされました。";
}
// 最後にJSON形式に変換して出力
echo json_encode([
"access_method" => $method,
"description" => $message,
"status" => "connected"
], JSON_UNESCAPED_UNICODE);
?>
このプログラムをブラウザで普通に開くと、基本的には GET と表示されます。なぜなら、ブラウザのURL欄にアドレスを打ってページを開くという行為そのものが「GET(ページをください)」という命令だからです。
一方で、スマホアプリから情報を送ったり、専用のテストツール(Postmanなど)を使ったりすると、同じURLでも POST や DELETE としてアクセスを振り分けることができます。この「一つの入り口で、命令ごとに処理を変える」という仕組みが理解できると、REST API開発がぐっと楽しくなります。「メソッドごとに役割が決まっている」という基本ルールさえ押さえておけば、この先の複雑な開発もスムーズに進めることができます。
3. PHPでREST APIを作るために必要な環境
PHPでREST APIの開発を始めるには、まずプログラムを実行するための「サーバー環境」を手元のパソコンに用意する必要があります。プログラミング未経験の方におすすめなのが、XAMPP(ザンプ)やMAMP(マンプ)といった無料のパッケージソフトです。これらをインストールするだけで、PHP本体に加えて、Webサーバーの「Apache」やデータベースの「MySQL」がセットで利用可能になり、自分のPCがあっという間に「開発専用のサーバー」に早変わりします。
例えるなら、REST API開発は「料理」のようなものです。いきなり本番のレストラン(公開サーバー)で調理を始めるのはリスクが高いですが、自宅のキッチン(ローカル環境)なら、何度失敗しても誰にも迷惑はかかりません。思う存分コードを書き換えて、APIが正しくデータを返してくれるかテストできる「自分だけの実験室」を持つことが、上達への一番の近道です。
環境が整ったら、まずはPHPが正常に動くか確認してみましょう。以下のコードを「test.php」という名前で保存し、ブラウザで http://localhost/test.php にアクセスしてみてください。
<?php
// PHPが動いているかチェックするためのプログラム
// echoは、後ろに続く文字を画面に表示する命令です
echo "PHPの環境構築に成功しました!これでAPI開発を始められます。";
?>
画面にメッセージが表示されれば、REST APIを作る準備は万端です。2026年現在の開発現場でも、まずはローカル環境でAPIの基礎を組み立て、動作が安定してからクラウドやレンタルサーバーへ移行するのが一般的な流れです。特にPHPは設定がシンプルで、初心者でもつまずきにくいのが大きなメリットです。
また、APIの動作確認をより効率的に行うために、ブラウザだけでなく「Postman」や「Thunder Client」といったAPI専用のテストツールも併用すると、複雑なデータのやり取りも視覚的に理解しやすくなります。まずは「自分のPCでPHPが動く」という感動を味わい、開発の第一歩を踏み出しましょう。
4. PHPでREST APIの基本部分を作ってみよう
ここからは、PHPでREST APIがどのように動くのかを実際のコードを見ながら理解していきます。APIは外部のアプリやブラウザへデータを返す仕組みなので、まず「どんな形式で返すか」を明確にする必要があります。一般的にはJSONというデータ形式が利用され、これは人間にも読みやすく、機械にも扱いやすい特徴を持っています。
header('Content-Type: application/json; charset=UTF-8');
この1行がAPIの大切な入口部分です。「これから返すデータはJSONですよ」と相手に伝える役割があり、アプリやブラウザが正しく情報を読み取るために欠かせない設定です。初めて触れる方は難しく感じるかもしれませんが、APIを作るうえでは毎回使う基本設定なので、まずは雰囲気だけでも覚えておいて大丈夫です。
次に、実際にAPIが返すデータをPHPで準備します。今回はとても簡単な例として、メッセージを1つ返すだけのAPIを作ってみます。
$data = [
'message' => 'APIへようこそ!これは基本的なレスポンス例です。',
'status' => 'success'
];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
このコードでは、配列として用意したデータを json_encode 関数でJSONに変換し、そのまま画面(またはアプリ側)へ返しています。実際にブラウザで実行してみると文字だけが並んだJSON形式のデータが表示され、「APIが動いている」という感覚をつかむことができます。
初心者の方はまず、この「データを配列で作り、JSONに変換して返す」という基本パターンを理解することが大切です。この流れが分かれば、より複雑なAPIの制作にもスムーズに進めるようになります。最初はシンプルでも、ここがREST API開発の第一歩となる重要な基礎部分です。
5. GETメソッドでデータ取得APIを作る
REST APIでは、最もよく利用される操作のひとつが「GETメソッド」です。GETはデータを取得するためのメソッドで、たとえば商品一覧やユーザー情報、ニュースのリストなどを表示したいときに使われます。Webサイトでもアプリでも広く利用されており、PHPで作るREST APIでもまず理解しておきたい基本的な動作です。
GETメソッドを使うAPIは、URLにアクセスするだけでデータを返すシンプルな仕組みが特徴です。実際にどう動くのかを知るために、簡単なサンプルを見てみましょう。
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
// ここではフルーツの一覧データを用意しています
$items = [
['id' => 1, 'name' => 'りんご'],
['id' => 2, 'name' => 'みかん'],
['id' => 3, 'name' => 'ぶどう']
];
// JSONとして画面に出力
echo json_encode($items, JSON_UNESCAPED_UNICODE);
}
このコードをサーバーに置いてブラウザで開くと、画面にJSON形式のデータが表示されます。URLにアクセスするだけでデータが取得できるため、プログラミング初心者の方でも動作確認がしやすい仕組みです。また、アプリやJavaScriptからこのURLにアクセスすれば、同じようにデータを受け取ることができます。
GETメソッドは「ただ見るだけ」「一覧を取り出すだけ」といった用途に最適で、REST APIの中でも特に使用頻度の高い操作です。最初にこの動きを理解しておくと、今後のAPI開発でどのようにデータを扱うかが自然とイメージしやすくなります。
6. POSTメソッドでデータ登録APIを作る
POSTメソッドは、REST APIで「新しいデータを登録するとき」に使われる代表的な操作です。例えばユーザー登録や商品追加など、外部から送られた情報を受け取って処理したい場合にとても便利です。GETが“見るだけ”の操作だとすれば、POSTは“情報を書き込む”ための操作と考えるとイメージしやすくなります。
PHPでは、アプリやJavaScriptから送られてきたJSONデータを php://input という場所から受け取ることができます。プログラミング未経験の方でも試しやすいように、まずは受け取ったデータをそのまま返す簡単なサンプルを見てみましょう。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// アプリやフォームから送られたデータを読み取る
$json = file_get_contents('php://input');
// JSONをPHPの配列として使える形に変換
$data = json_decode($json, true);
// 受け取った内容をそのまま返すシンプルなレスポンス
echo json_encode([
'received' => $data,
'status' => 'created',
'message' => 'データを受信し、正常に処理しました。'
], JSON_UNESCAPED_UNICODE);
}
このサンプルでは、送られてきたデータを一度受け取り、それをJSONとして返すだけのシンプルな動作を行っています。実際にツールやアプリからデータを送ってみると、どんな内容が受け取れているかが確認できるため、初心者でもPOSTメソッドのしくみを理解しやすいはずです。
POSTは、REST APIの中でも特に利用される機会が多い基本操作です。まずは「データを受け取り、そのまま返してみる」という小さな体験から始めることで、API開発の流れがぐっとわかりやすくなります。
7. APIのURL設計も重要なポイント
REST APIを作る際に意外と見落とされがちなのが「URL(エンドポイント)の設計」です。URLは利用する人やアプリにとって“案内板”のような役割を持ち、何を返してくれるAPIなのかがひと目で分かるようにしておくことがとても大切です。例えば「/items」は商品の一覧、「/items/1」は商品番号1の詳細というように、役割ごとにルールを決めて整理しておくと、後で自分が見返したときにも理解しやすくなります。
初心者の方はまず「できるだけ意味のある英単語を使う」ことを意識すると良いでしょう。名前がわかりやすいほど使う側も迷わずに済み、結果としてAPI全体の品質が上がります。また、アプリの機能が増えてきたときにも整ったURL構造は管理のしやすさに大きく貢献します。
以下は、ごくシンプルなURL設計の一例をまとめたものです。実際のデータベースを扱わなくてもイメージしやすいよう、どんな役割のAPIなのかだけを一覧にしました。
/items → 商品一覧を取得するAPI
/items/1 → 商品ID 1 の詳細情報を取得するAPI
/users → ユーザーの一覧情報を取得するAPI
/users/5 → ユーザーID 5 の詳細情報を取得するAPI
このようにパターン化されたURLは、「見ただけで何の情報が取れるかがわかる」という大きなメリットがあります。直感的に理解しやすいため、プログラミングに慣れていない初心者でも扱いやすく、アプリ開発の中で混乱しにくくなるという点でも非常に重要です。慣れてきたら、自分の作りたいサービスに合わせて最適なURL構造を考えてみるとよいでしょう。
8. セキュリティに配慮したAPI作りの基本
REST APIは外部と直接データをやり取りする仕組みのため、安全に動作させるためのセキュリティ対策が欠かせません。特に、外部から送られてくるデータをそのまま信じて処理してしまうと、不正アクセスや予期せぬ動作につながる危険があります。まずは「入力チェック」を行い、想定外の値が入り込まないようにすることが基本です。
もう一つ大切なのが「認証」です。APIを誰でも自由に使える状態にしてしまうと、意図しないアクセスが増えたり、サーバーに負担がかかったりする可能性があります。一般的にはAPIキーやトークンを利用し、正しい利用者だけがアクセスできるように制御します。初心者の方はまず「アクセスできる人を制限する」という考え方を押さえておくと理解しやすくなります。
また、やり取りするデータが盗み見られないようにするために、HTTPSで通信を行うことも重要です。これにより、データが暗号化され、安全な状態で送受信できます。以下は、とても簡単な例として「入力データが空の場合にエラーを返す」という基本的なセキュリティチェックのサンプルです。
<?php
header("Content-Type: application/json; charset=UTF-8");
$input = file_get_contents("php://input");
$data = json_decode($input, true);
// 入力データが空の場合はエラーを返す
if (empty($data)) {
echo json_encode([
"status" => "error",
"message" => "入力データが不足しています。"
], JSON_UNESCAPED_UNICODE);
exit;
}
// 正常な場合は処理を続ける(例としてそのまま返す)
echo json_encode([
"status" => "success",
"received" => $data
], JSON_UNESCAPED_UNICODE);
?>
このような小さなチェックを積み重ねることで、APIの安全性は大きく向上します。最初はシンプルな対策から始め、少しずつ必要なセキュリティを追加していくことで、安心して利用できるAPIへと育てていくことができます。
まとめ
PHPでREST APIを作る流れを振り返ると、初心者にとって最初は難しそうに見える部分も、ひとつひとつ噛み砕くことで理解しやすくなることがわかります。REST APIは、Webサービスやアプリが外部とやり取りするための大切な仕組みであり、PHPという身近な言語で構築できる点は大きな魅力です。特に、HTTPメソッドの役割を正しく理解することは重要で、GETで情報を取り出し、POSTで新しい情報を登録し、PUTで更新し、DELETEで削除するといった操作は、どのAPIにも共通する基本的な動きになります。この流れを理解すると、APIがどのように動き、どんなときに呼び出されるのかが自然とイメージしやすくなります。
実際にPHPでAPIを作る際には、正しいヘッダーを設定し、JSON形式のデータを返すことが不可欠です。JSONは多くのプログラミング言語と相性が良く、アプリケーション間のやり取りに最適な形式です。データを配列で用意してjson_encodeでJSONへ変換するだけでAPIとして動作するため、仕組みを知れば驚くほどシンプルに感じられるでしょう。また、PHPには入力データを受け取るphp://inputが用意されているため、POSTメソッドで送られたJSONデータもスムーズに扱うことができます。受け取ったデータをjson_decodeで配列へ変換すれば、アプリから送られた情報を元に処理を行えるようになります。
さらにAPIの魅力を深めるには、URL設計やセキュリティのポイントも理解しておくことが大切です。URLを役割ごとに整理することで利用する側がAPIを直感的に理解でき、必要なデータに迷わずアクセスできるようになります。セキュリティの基本としては、APIキーやトークン認証などを使うことで、許可された相手だけがアクセスできるようにします。公開する情報を限定し、余計なデータを外部に出さない意識を持つことで、安全なAPIを提供できます。また、HTTPSによる通信暗号化は現代では必須ともいえる対策で、データを守るために不可欠です。初心者のうちは理解しやすい部分から進めながら、徐々にセキュリティの重要性も意識していくと良いでしょう。
最後に、PHPでREST APIを構築する際の具体的なイメージをより掴めるよう、基本をまとめたプログラムを紹介します。これを参考にしながらAPIの動作を体験すれば、Webサービスの仕組みがより立体的に見えるようになり、自分で作ってみたいという気持ちが大きくなるはずです。PHPとJSON、HTTPメソッドの関係が自然とつながり、実践的なプログラム作成に活かせる力が身につきます。
サンプルプログラム(まとめ)
<?php
header("Content-Type: application/json; charset=UTF-8");
$method = $_SERVER["REQUEST_METHOD"];
if ($method === "GET") {
echo json_encode([
"status" => "success",
"items" => [
["id" => 1, "name" => "りんご"],
["id" => 2, "name" => "みかん"]
]
], JSON_UNESCAPED_UNICODE);
}
if ($method === "POST") {
$json = file_get_contents("php://input");
$data = json_decode($json, true);
echo json_encode([
"status" => "created",
"received" => $data
], JSON_UNESCAPED_UNICODE);
}
?>
このプログラムでは、GETとPOSTを判定して内容を返す簡易的なREST APIを実現しています。JSON形式でのデータ返却、php://inputからの受信、json_decodeによる配列化といったAPIの基本要素がひとまとめになっているため、初心者にとって最初の理解に役立つ構成になっています。Web開発の裏側では、このようなAPIがデータを支え、画面表示やアプリ操作を成立させています。API開発は実践と反復で確実に力がついていくため、小さなAPIから作り始めて徐々に規模を広げていくと良いでしょう。
生徒
「REST APIがどんなものなのか、そしてPHPでどんなふうに作るのかがだいぶ理解できました。難しそうなイメージがあったけど、基本の流れはシンプルなんですね。」
先生
「そうなんです。仕組みがわかると一気に扱いやすくなりますよ。特にGETやPOSTのようなHTTPメソッドの役割が理解できると、APIの動きが自然と整理されて見えてきます。」
生徒
「json_encodeでデータを返すところも、意外と簡単でした。スマホアプリやJavaScriptと連携できる理由もよくわかりました。」
先生
「その調子です。今回学んだことをベースにして、少しずつ複雑なAPIにも挑戦できますよ。セキュリティの意識も忘れずに続けていきましょう。」
生徒
「まずは今日のサンプルを動かしてみて、仕組みを体で覚えてみます!」