こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 LaravelでAPIを実装する基本のやり方を解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
Laravelのバージョン | 8.42.1 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
APIを実装するやり方を解説
APIを実装するやり方をサンプルプログラムをまじえて解説します。
APIを実装するためには
- コントローラー作成
- api.phpにルーティングを設定
の2つが最低限必要です。
これらだけでAPIを作成し、解説していきます。
コントローラー作成
コントローラー作成の解説をします。
API用のコントローラーを作成するやり方は、Web用と同じくコマンドで作成します。
これが最も簡単です。
コマンドは
1 |
php artisan make:controller 【作成するコントローラーの名前】 |
でコントローラーを作成することができます。
またapiオプションを足してコントローラーを作成すると、APIで使うであろう関数がすでに用意されている状態でコントローラーを作成することができます。
開発したい機能を想定して、コントローラーを作成するとapiオプションをつけるかつけないかを判断してください。
詳しくはこちらの記事をご参考ください。
【Laravel】コントローラーを新規作成するartisan make:controllerコマンドを解説します
apiオプションについて
【Laravel】APIのコントローラーを作成するのに便利なapiオプションを解説します
この記事ではapiオプションをつけずにコントローラーを作成し、以下のような内容としました。
1 2 3 4 5 6 7 8 9 10 |
<?php namespace App\Http\Controllers; class SampleController extends Controller { public function apiHello(){ return 'Hello World'; } } |
名前を【SampleController 】として、呼び出されたら、「Hello World」を返すという単純なものです。
api.phpにルーティングを設定
api.phpにルーティングを設定を解説します。
Web用のルーティングはweb.phpに定義しましたが、APIだとapi.phpにルーティングを定義します。
ルーティングを定義するファイルは異なりますが、書き方は同じです。
この記事では先ほどの【SampleController 】を呼ぶよう以下のように定義しました。
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'apiHello']); |
ルーティングで注意点があります。
それは、【/api】URIプレフィックスがデフォルトで自動的に適用されます。
上記の定義したルーティングにアクセスするためには、【http://localhost:8000/sample】ではなく【http://localhost:8000/api/sample】でアクセスする必要がある、ということです。
api.phpについてはこちらの記事をご参考ください。
api.phpに正しく定義できたか?を確認するには
1 |
php artisan route:list |
というルーティングを確認できるコマンドをたたきます。
このコマンドについてはこちらの記事をご参考ください。
コマンドをたたくと以下のように表示されて、ルーティングが正しく定義されていることが確認できます。
1 2 3 4 5 6 7 8 9 |
C:\Laravel\LaravelSample>php artisan route:list +--------+----------+------------+------+------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------------+------+------------------------------------------------+------------+ | | GET|HEAD | / | | Closure | web | | | GET|HEAD | api/sample | | App\Http\Controllers\SampleController@apiHello | api | | | GET|HEAD | form | | Closure | web | | | GET|HEAD | show | | App\Http\Controllers\SampleController@show | web | +--------+----------+------------+------+------------------------------------------------+------------+ |
APIを実行し確認する
APIを作成するのに最低限必要な
- コントローラー作成
- api.phpにルーティングを設定
の2つができたので、実行し確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
サーバーが立ち上がったらコマンドプロンプトをもう1つ立ち上げて、
- curl http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/api/sample
※コマンドプロンプトに記載されているURL - curl http://localhost:8000/api/sample
とどちらかのコマンドをたたきます。
curlコマンドとは、データを転送するために使うコマンドです。
HTTPリクエストしたいときに便利です。
コマンドをたたくとコントローラーに記載した通り、「Hello World」が返ってくることが確認できました。
1 2 3 4 5 |
C:\Laravel\LaravelSample>curl http://localhost:8000/api/sample Hello World C:\Laravel\LaravelSample>curl http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/api/sample Hello World C:\Laravel\LaravelSample> |
まとめ:APIを作成してみよう
以上がLaravelでAPIを実装する基本のやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
この記事ではAPIの実装の基本について解説しました。
APIで他にできることも知りたい、という方はこちらの記事もご参考ください。
【Laravel】APIでjsonを返す実装のやり方を解説します
リクエストに対してバリデーションするやり方
【Laravel】APIでリクエストに対してバリデーションするやり方を解説します
コメント