環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

【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情報はこちら。

DATABASEapi
USERNAMEapiuser
PASSWORD3c311dcf37bca7f70a33ee90eb33793c

プロジェクト内にある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っぽく仕上げてみることにします。