iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
1
Software Development

PHP新手30天實戰金流系列 第 3

[Day3] Laravel 6 API : Store & Update & Delete

tags: PHP新手30天實戰金流, Laravel

前言

今天的內容是依照
How to make an API with Laravel 的 Tutorial 4 & 5 來實作。

  • 為方便測試 API, 請先安裝 postman =D

修改 api.php

將關於 PersonController 的 request 都交由 apiResource 來處理。

Route::apiResource('/person', 'PersonController');

Store

  1. app/Http/Controllers/PersonController.php中,
    新增:
    public function store(Request $request)
    {
        $request->validate([
            'last_name' => 'required',
            'password'  => 'required',
            'email'     => 'required', 
        ]);
    
        $person = Person::create($request->all());
        return new PersonResource($person);
    } 
    
  2. app/Person.php中的Person Model裡,
    新增:
    class Person extends Model
    {
        protected $fillable = [
            'last_name',
            'email',
            'password',
        ];
    }
    
  3. 用 postman 測試:
    1. 選用 POST 方法

    2. Body 的 tab 下選 form-data 格式,然後填充欄位和要 store的資料

    3. 按下 "Send" btn,下方有server回傳的資料就表示正確

    4. 到 DB 確認
      select id,last_name FROM people;

Update

  1. app/Http/Controllers/PersonController.php 中加 update涵式:
public function update(Person $person, Request $request):PersonResource
    {
        $person->update($request->all());
        return new PersonResource($person);
    }
  1. 用 [postman]測試:

    1. 選用 PUT 方法, URL要指定更新的資料是哪一筆(用 primary key: id 指定)
    2. Body 的 tab 下選 raw 格式(因為 form-data只能用 POST方法傳遞),最右側下拉式選單選JSON
    {
         "last_name":"day3_test_update"
    }
    


    3. 按下 "Send" btn,下方有server回傳的資料就表示正確

  2. 到 DB 確認
    select id,last_name FROM people;

DELETE

  1. app/Http/Controllers/PersonController.php 中加 destroy 函式:
public function destroy(Person $person)
    {
        $person->delete();
        return response()->json();
    }
  1. 用 postman 測試:

    1. 選用 DELETE 方法, URL要指定更新的資料是哪一筆(用 primary key: id 指定)

    2. 選 Headers tab,下面欄位(Key, value)

      • Accept, application/json
      • Content-Type, application/json

      若沒有勾會出現錯誤: The DELETE method is not supported for this route. Supported methods: GET, HEAD, POST

    3. 按下 "Send" btn,下方有server回傳的"[]"資料就表示正確

  2. 到 DB 確認
    select id,last_name FROM people;

OK 今天先到這裡! 第四天要來學當我們欲更新 API 時,要如何做版本增加以利管理。
晚生學習分享所學經驗,若內容有誤或不清楚,煩請不吝指教!更是歡迎各位大神多多補充,感謝萬分!


上一篇
[Day2] DB資料填充 + 初探 Laravel API
下一篇
[Day4] Laravel 6 API Versioning + Email Verification
系列文
PHP新手30天實戰金流34

尚未有邦友留言

立即登入留言