laravel8でRestfulなCRUDメモアプリAPIを作ってみる。

laravel8でRestfulなCRUDメモアプリAPIを作ってみる。

1, 一分で出来るlaravel api

routes/api.phpに追記

getなのでブラウザで大丈夫。文字列が表示されればOK!
http://localhost/api/public/api

最低限のAPIなら、1分で出来たな…。
routes/api.php
routes/web.php
の違いは、urlに/apiがつくだけ?

2, さすがにcontrollerくらいは作ろう

routes/api.phpに記述

app/Http/Controllers/MemoController.phpのindex()に、返す文字列を記述
http://localhost/api/public/api/memo で表示される事を確認

3, postでDBにINSERTしたい!

適当なカラムを追加して、php artisan migrate

app/Http/models/Memo.php マス・アサイメントってめんどい…。

app/Http/Controllers/MemoController.phpのstore()に、DBのISNERT処理を記述

getはブラウザからurl入力でテスト出来るけど、他のメソッドは無理なのでpostmanを使おう
postしてMySQLにINSERTされていればOK

postしているのに、なぜかgetになる…。
urlの最後にスラッシュがついているとgetにリダイレクトされるみたい・・・なんで?

4, apiのvalidationってどうするの?

titleやcontentを入れないでpostするとエラー画面のhtmlがそのまま返される。
とりあえず、バリデーション入れて、結果をそれっぽいjsonで返すようにしよう。

3, updateとdeleteしたい!
引数の時点でモデルで渡してくれるのは良いけど、存在しないレコードidだとエラー画面の文字列を返すので、昔ながらの$idで対処

4, 冷静に考えると、一覧(index)や個別(show)の表示がなかったので実装

5, キーワード検索したいな…。
restfulには検索が無いので、routes/api.phpに追記

とりあえず、これで一通り出来たかな?