【Laravel】はじめてのAPI構築(第2回) 環境構築+はじめてのAPI編
今回からPHPのフレームワークであるLaravelを使って、環境構築をしていきます。最初はよくわからない方もいると思いますが、手を動かしてみるだけでも勉強になるかと思います。
環境
- PHP 7.4.13
- Laravel Framework 6.20.41
- mysql 5.7.29
LaravelはLTSを優先し、6を採用しています。PHPについては、7.3系だとlaravel起動(serve)時にcomposer.json系の確認メッセージが出て大変面倒なので、7.4を採用しています。
DBについては、今回はそこまで拘りはないので、接続が確認できれば問題ないです。sqliteでもかまいません。
環境構築
プロジェクト作成
# プロジェクト作成
composer create-project --prefer-dist laravel/laravel api "6.*"
# 起動確認
cd api
php artisan serve
----------------------------------------------
Laravel development server started: http://127.0.0.1:8000
[Tue Dec 7 18:39:02 2021] PHP 7.4.13 Development Server (http://127.0.0.1:8000) started
----------------------------------------------
表示されたURLにアクセスし、Laravelデフォルト画面が表示されることを確認
確認が出来たら、一度停止しておきましょう
DB作成
こちらは各自お好きなDBをご用意頂き、そのDBに接続できるユーザーをご用意ください。手順等は調べれば沢山出てくると思います。参考までに今回テストで用意したDB情報はこちら。
DATABASE | api |
USERNAME | apiuser |
PASSWORD | 3c311dcf37bca7f70a33ee90eb33793c |
プロジェクト内にあるenvファイルも書き換えておきましょう。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=api
DB_USERNAME=apiuser
DB_PASSWORD=3c311dcf37bca7f70a33ee90eb33793c
はじめてのAPI
Controller作成
下記コマンドを実行すると、api/app/Http/Controllers/ApiController.phpの雛形が生成されます。
php artisan make:controller ApiController
作成されたApiControllerに簡単なtestアクションを作成してみます。以下のように書いてみましょう。簡単な連想配列を用意してreturnするだけの簡単な命令です。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ApiController extends Controller
{
/**
* 簡単なテスト
*/
public function test(Request $request) {
$ret = array();
$ret['version'] = '1.0.0';
$ret['result'] = 'success';
return $ret;
}
}
route
testアクションへのルートを作成します。api.phpに下記の設定を記述すると、/api/testとアクセスすることで、ApiControllerのtestアクションが呼び出されます。
(※今回余分な部分はコメントアウトしてあります)
<?php
use Illuminate\Http\Request;
// Route::middleware('auth:api')->get('/user', function (Request $request) {
// return $request->user();
// });
Route::get ( '/test', 'ApiController@test' );
確認
起動して、http://127.0.0.1:8000/api/testにアクセスしてみましょう。
無事に成功しました。立派なAPIの完成です。
表示されているのはJSON形式と呼ばれるデータのフォーマットで、APIでよく使われる出力方法です。laravelではControllerにて配列をreturnするだけで、JSON形式で出力をしてくれます。
今は単純に文字列を表示しましたが、データベースの中から例えばユーザー一覧を取得して配列に入れてあげれば、ユーザー一覧を取得するAPIになるわけです。
環境構築+はじめてのAPI まとめ
はじめてのAPIとして、最も簡単な形でAPIを作成してみました。これだけの情報でも十分、誰でもアクセスが可能なAPIは作れてしまうのではないでしょうか。(認証が必要なAPIについても、今後作成していきます。)
次回は今回作成したものを進化させて、何か具体的な題材でAPIっぽく仕上げてみることにします。