LoginSignup
4
4

More than 5 years have passed since last update.

Laravelを使ったAPIの作成フロー

Last updated at Posted at 2017-09-09

開発環境

  • Laravel5.4
  • Vagrant(Homestead)
  • Windows(sequelProのためMacも使う)

目的

Laravelを使ってアプリ開発を行うための個人的な備忘録です。

操作フロー

  1. モデルとマイグレーションの作成を行う

    // モデルの作成(モデル名はパスカルケースで単数表記を推奨)
    php artisan make:model Http/Models/モデル名
    
    // マイグレーションの作成(テーブル名はスネークケースの小文字で複数表記を推奨)
    php artisan make:migration create_テーブル名_table --create=テーブル名
    
  2. テーブルの設計を考え、1で作成したマイグレーションファイルに記述する

  3. マイグレーションファイルを実行しテーブルを作成する(※仮想開発環境で実行する)

    php artisan migrate
    
  4. コントローラーを作成する(※不要な場合は省略)

    // テーブル名はパスカルケースの複数表記を推奨
    php artisan make:controller [テーブル名]Controller
    
  5. テストデータを作成する(※不要な場合は省略)

    1. 作成

      // シーディングファイルの名称はパスカルケースで複数表記を推奨
      php artisan make:seeder [テーブル名]TableSeeder
      
    2. ファイルの記述(サンプル)

      // サンプル
      // テストデータに日本語が入ってくる
      $faker = Faker\Factory::create('ja_JP');
      
      for ($i = 0; $i < 10; $i++) {
          App\[モデル名]::create([
              'uuid' => $faker->text(32),
              'created_at' => $faker->dateTime('now'),
              'updated_at' => $faker->dateTime('now'),
          ]);
      }
      
    3. DatabaseSeederに実行コードを記述

      public function run()
      {
          $this->call(UsersTableSeeder::class);
          $this->call(PostsTableSeeder::class);
          $this->call(CommentsTableSeeder::class);
      }
      
    4. シーダーファイルの実行

      // DatabaseSeederを実行する
      php artisan db:seed
      
      // 特定のクラスのシーダーのみを実行する場合
      php artisan db:seed --class=実行するシーダークラス名
      
  6. テーブルデータに合わせてModelのデフォルト設定を変更する

    protected $table = 'hoge_data';
    protected $primaryKey = 'hoge';
    public $timestamps = false;
    // Carbonインスタンスへ自動変換したいカラムを指定する
    protected $dates = ['created_at', 'updated_at', 'deleted_at'];
    
  7. Eloquent補完用のデータを生成(※仮想開発環境で実行する)

    // _ide_helper_models.php内に予測変換用のコメントが作成される
    // そのコメントをコピーし、作成したモデルクラスのところに貼り付ける
    php artisan ide-helper:models
    
  8. ルーティングに記載する

    Route::post('/hoge','[コントローラー名]@メソッド名');
    
  9. リクエストのバリデーションクラスを用意する

    php artisan make:request HogeRequest
    
  10. テスト用クラスを用意する

    // --unitを付けるとUnitディレクトリに生成する
    // phpunitコマンドでテストを実行する
    // test◯◯というメソッドがテスト対象となる(◯◯は任意の名前を付けることが可能)
    php artisan make:test HogeDataTest
    

参考

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4