php artisan make:controller Api/CategoryController --api
app/Http/Controllers/API/CategoryController.php が自動生成されます。
routes/api.php
// API Category
Route::group(['middleware' => ['api']], function () {
Route::resource('articles', 'Api\CategoryController');
});
php artisan route:list
| GET|HEAD | api/categories | categories.index
| POST | api/categories | categories.store
| GET|HEAD | api/categories/create | categories.create
| GET|HEAD | api/categories/{category} | categories.show
| PUT|PATCH | api/categories/{category} | categories.update
| DELETE | api/categories/{category} | categories.destroy
| GET|HEAD | api/categories/{category}/edit | categories.edit
app/Http/Controllers/API/CategoryController.php
index()
public function index()
{
$categories = \App\Category::all();
return $categories;
}
return $categories; のところは次のようにしてもいいでしょう
return $categories->toJson(JSON_UNESCAPED_UNICODE);
store()
public function store(Request $request)
{
$category = new \App\Category;
$category->fill( $request->all() )->save();
return $category;
// return response('store OK', 200);
}
どのような値を返すのかはフロントエンドの実装によります。 上の例では作成したモデルをjsonで返しています。
show()
public function show($id)
{
$category = \App\RakutenCategory::find($id);
return $category;
}
update()
public function update(Request $request, $id)
{
$category = \App\RakutenCategory::findorFail($id);
$category->fill( $request->all() )->save();
return $category;
// return response('update OK', 200);
}
destroy()
public function destroy($id)
{
$category = \App\RakutenCategory::findorFail($id);
$category->delete();
return $category;
// return response('delete OK', 200);
}
これで完成です。 あとはフロントエンド( Angular / React / Vue.js )からガリガリ操作してください。