0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelで作る簡易掲示板アプリ② | HTTPメソッドの使い分けと実装例

Posted at

はじめに

今回は私が研修で作成した掲示板サイトを題材に、HTTPメソッドの基本と実装への落とし込み方について、紹介します。
「GETとPOSTは分かるけど、DELETEってどう使うの?」というLaravel初学者の方に向ける意味でも、RESTfulな設計に基づく実践的な使い分けについて、まとめてみました。

本記事でわかること

  • HTTPメソッドの役割とLaravelでの使い方
  • 掲示板サイトにおける具体的なルーティングと処理例
  • よくある質問&プラクティス例

①HTTPメソッドとその用途

IMG_7875.jpeg

②具体的なコード例

1.投稿一覧表示(GET)

Route::get('/posts', [PostController::class, 'index'])->name('posts.index');
  • DBから全投稿を取得し、ビューに渡して表示する処理。
  • データを変更しないため、安全なGETを使用。

2.投稿の新規作成(POST)

<form action="{{ route('posts.registrationcompleted') }}" method="POST">
    @csrf
    <textarea name="message"></textarea>
    <button type="submit">投稿</button>
</form>
  • ユーザーが入力した内容をDBに保存するため、POSTを使用。
  • @csrfでCSRFトークンを付与しセキュリティ対策。

3.投稿削除(DELETE)

<form action="{{ route('posts.delete', $post->id) }}" method="POST">
    @csrf
    @method('DELETE')
    <button type="submit">削除</button>
</form>
  • LaravelではHTMLフォームからDELETEを直接送信できないため、@method('DELETE')で指定。
  • コントローラ側でdestroy()メソッドにルーティング。

③よくある質問と回答

  • Q1.なぜGETで削除しないの?
    A. セキュリティの観点から、副作用のある操作(削除や更新)をGETで実行すべきではないためです。
    URLを共有したり、ブラウザがプリフェッチする際に意図しない動作を防ぐためにも、RESTに準拠したメソッドを使います。

  • Q2.PUTやPATCHは使わないの?
    A. 今回のアプリでは編集機能を未実装のため使用していませんが、将来的に「投稿編集機能」を追加する場合は、PUTまたはPATCHを使用する予定です。

④まとめ

掲示板のようなCRUDアプリでも、HTTPメソッドの役割を正しく理解し、設計の意図に沿った使い分けをすることが非常に重要です。
LaravelはRESTfulなルーティングをサポートしているため、これらの原則に従うと読みやすく・保守しやすいコードを書くことができます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?