こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 LaravelでAPIでjsonを返す実装のやり方を解説していきます。
APIの基本的な実装のやり方については、こちらの記事をご参考ください。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
Laravelのバージョン | 8.42.1 |
Postmanのバージョン | 8.6.2 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
PostmanはAPIのレスポンスを確認するために使います。
インストールするやり方はこちらの記事をご参考ください。
APIでjsonを返す実装のやり方を解説
APIでjsonを返す実装のやり方をサンプルプログラムをまじえて解説します。
jsonを返すには、コントローラーでjsonメソッドというメソッドを使います。
このメソッドはLaravelでのみ使うことができるため、ご注意ください。
jsonメソッドは、以下のように使います。
1 2 3 4 5 6 7 8 |
public function sample() { return response()->json( [ 'sample' => 'サンプル' ] ); } |
基本これだけでjsonを返すことができます。
jsonメソッドは指定された配列をPHP関数のjson_encode関数でjsonに変換し、【Content-Type】ヘッダに【application/json】をセットしてくれています。
特に指定しない限り、HTTPステータスは、【200】が返ります。
上記のサンプルでは
1 2 3 |
{ "sample": "サンプル" } |
というjsonが返ります。
では、次の章で実際に使ってみます。
APIでjsonを返すプログラムの概要
APIでjsonを返すプログラムは、
- コントローラー
- api.php
2つを使います。
コントローラーは名前を【SampleController.php】とし、json形式でレスポンスを返します。
api.phpには、【http://〇〇.〇〇.〇〇:8000/sample_path】でアクセスした場合、SampleControllerのapiHello関数を呼ぶように定義します。
ちなみにapi.phpとは、APIのルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
コントローラー:SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php namespace App\Http\Controllers; class SampleController extends Controller { public function apiHello() { return response()->json( [ 'Good morning' => 'おはよう', 'Hello' => 'こんにちは', ] ); } } |
api.phpのサンプルプログラム
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'apiHello']); |
実行して確認
本当にjsonを返すことができているのかを実行して確認します。
まず、Laravelでサーバーを立ち上げます。
コマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
APIのレスポンスを確認するためにPostmanを起動します。
基本的な使い方については、こちらの記事をご参考ください。
【Get】を選択し、URLは
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/api/sample
※コマンドプロンプトに記載されているURL - http://localhost:8000/api/sample
のどちらかを設定し、【Send】ボタンを押します。
レスポンスにコントローラーで設定したjsonが返ってきて、HTTPステータスが200であることが確認できました。
【Headers】のタブを選択します。
【Content-Type】ヘッダに【application/json】をセットされていることが確認できました。
まとめ:APIでjsonを返したいときはjsonメソッドを使おう
以上がLaravelでAPIでjsonを返す実装のやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント