iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Software Development

Laravel 新手初見 API系列 第 5

Day05-CRUD API 實作(五)Route 規劃與 CRUD 實作(上)

大家好~
今天要來開始實作留言的 CRUD 了!

Route

// 查詢全部 messages
Route::get('/messages',[MessageController::class,'index']);
// 檢視單一筆 message
Route::get('/messages/{messageId}',[MessageController::class,'show']);

另外留言的新增、修改、刪除功能,
我希望是會員才能使用的,
所以將下面三個 Route 加到上次我們建立的那個 Route::group 吧!

Route::group(['middleware' => ['auth:sanctum']], function () {

    // 新增 message
    Route::post('/messages',[MessageController::class,'store']);
    // 修改 message
    Route::put('/messages/{messageId}',[MessageController::class,'update']);
    // 刪除 message
    Route::delete('/messages/{messageId}',[MessageController::class,'destroy']);
});

那我們留言預計會有的功能與 Route 就都規劃好囉,
接下來開始實作每個功能吧。

Controller

在我們的 app/Http/Controllers/MessageController.php use 會用到的 class。

use App\Models\Message;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;

Create

  • 流程:
    1. 驗證 Request 表單
    2. 建立新 Message
    3. 回傳 Response
public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|string|max:50',
        'content' => 'required|string|max:255'
    ]);

    $message = Auth::user()->messages()->create($validated);

    return response($message, Response::HTTP_CREATED);
}

這樣我們就可以新增留言啦!
API 的測試就不多贅述啦~

今天差不多就先這樣,
大家明天見啦~
若文章有任何問題,
還請大家不吝賜教!


上一篇
Day04-CRUD API 實作(四)Model、Migration
下一篇
Day06-CRUD API 實作(六)CRUD 實作(下)
系列文
Laravel 新手初見 API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言