初めに
最近、React/Redux開発をするようになり、勉強のためにAPIサーバーを立てたいと思い、Laravelでさくっと、簡単なAPIサーバー立てようというのが、本記事の主旨となります。
対象者
ReactやVueを勉強していて、自分でAPI作成して学習したい方
取り敢えず、LaravelでAPIをさくっと作る流れが知りたい方
Laravel 新規プロジェクトを作成する
まず、新規でLaravelプロジェクトを作成しましょう。
composer create-project "laravel/laravel=6.*" laravelapi
ModelとMigrationファイルを作成
ここでは、良くあるArticleモデルのケースで作成していきます。
因みにここでは、Modelsディレクトリを切って作成しています。
同じように進めたい場合は、以下記事を参考にしてみて下さい。
[Laravel 6] Modelsディレクトリを作る
(因みに8系からModelsディレクトリはデフォルトで作成されます。)
title
とbody
カラムを追加します。
php artisan make:model Models/Article -m
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->text('body');
$table->timestamps();
});
}
以下、コマンドでDBに反映しましょう。
php artisan migrate
ArticleControllerを作成する
php artisan make:controller Api/ArticlesController -r
アクションを定義します。
public function index()
{
$articles = Article::all();
return $articles;
}
public function store(Request $request)
{
$article = new Article;
$article->title = $request->title;
$article->body = $request->body;
$article->save();
}
public function show($id)
{
$article = Article::find($id);
return $article;
}
public function update(Request $request, $id)
{
$article = Article::find($id);
$article->title = $request->title;
$article->body = $request->body;
$article->save();
}
public function destroy($id)
{
$article = Article::find($id);
$article->delete();
}
ルーティングを設定する
APIのルーティングは、api.php
に記述します。
Route::group(['middleware' => ['api']], function(){
Route::resource('articles', 'Api\ArticlesController', ['except' => ['create', 'edit']]);
});
テストデータを作成
最後にテストデータを追加しましょう。
php artisan make:seeder ArticlesTableSeeder
public function run()
{
DB::table('articles') -> insert([
[
'title' => 'React',
'body' => 'hoge...'
],
[
'title' => 'Redux',
'body' => 'fuga...'
],
]);
}
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
php artisan db:seed
以上でAPI実装の一通りの作業は完了です。
##終わりに
簡素なものですが、この流れで、APIを作ることができます。
動作確認はPostmanなどで確認してみましょう。
次はこれを利用して、ReactからこのAPIを叩いてみます。
CORSを理解しながら、ReactからLaravelのAPIサーバーを叩く