瀏覽標籤:

Postman

刪除動物以及異常處理

今天也是先把簡單的處理完,今天來製作,刪除動物功能。

MethodURINameActionMiddleward
DELETEapi/animal/{animal}animal.destroyApp\Http\Controllers\AnimalController@destroyapi

用 HTTP DELETE 動詞請求 api/animal/1 表示刪除 id 為 1 的動物資料。

AnimalController

// 路由有設定 animal 變數,這裡設定它是 Animal 模型,所以會自動找出該ID的實體資料
public function destroy(Animal $animal)
{
    // 把這個實體物件刪除
    $animal->delete();
    // 回傳 null 並且給予 204 狀態碼
    return response(null, Response::HTTP_NO_CONTENT);
}
閱讀更多

實作資料庫以及新建動物的方法

實作資料庫

昨天有規劃一下資料表欄位,所以今天就來實作它吧!還記得在產生 Model 的時候有新增了一個 Migration ,這個東西可能一開始不太知道是什麼,它是一個可以把建立資料表這件事交由程式碼的檔案,迅速的創建好需要的資料表。如果是多人共同開發的時候,可以方便拿到最新版的資料庫。

/animal/database/migrations/2019_08_22_201730_create_animals_table.php

檔案已經包含 updown 兩個方法,表示跑這個檔案的時候,會執行 up 寫好的內容,如果恢復資料庫時會跑 down 的方法 

class CreateAnimalsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('animals', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedInteger('type_id')->comment('動物分類');
            $table->string('name')->comment('動物的暱稱');
            $table->date('birthday')->nullable()->comment('生日');
            $table->string('area')->nullable()->comment('所在地區');
            $table->boolean('fix')->default(false)->comment('結紮情形');
            $table->text('description')->nullable()->comment('簡單敘述');
            $table->text('personality')->nullable()->comment('動物個性');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('animals');
    }
}
閱讀更多

使用 Laravel 打造 RESTful API – 前言

為什麼想要寫這系列

RESTful API 目前滿主流的設計模式,我個人認為顧好資料核心結構,網頁的前端或是其他介面都可以使用,對於開發上的速度有很大的幫助。(例如:App、Web…都會用到資料)

平常小弟工作是使用 Laravel 開發,所以誕生這系列鐵人賽的內容!工作經驗開發過幾次API,這次鐵人賽會把以前的經驗加上最近吸收到的新知結合在一起,完成這30天挑戰。

會用這30天實際打造一個完整的 RESTful API 系統,因此前端的畫面並不會在這個系列中介紹,以API的架構、資料表的建置、認證、權限分組、優化程式碼… 為主。

閱讀更多