iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0

上篇我們建立完假資料後就能開始建立資料的API,
這邊就先來介紹一下API是什麼。

A : Application

P : Programming

I : Interface

API就是指應用程式介面,介於程式和電腦之間,
我們可以自己寫API也可以使用別人寫好的,
這裡我們就來教大家如何自己寫API。

有了上次的假資料就能開始設定Route和Controller,終端機輸入

php artisan make:controller Housecontroller

Controller:/app/Http/Controllers/HousesController.php

下面為Controller檔案原型

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HouseController extends Controller
{
    //
}

這裡我們設定基本的功能,像是檢索所有資料、檢索單筆資料、新增、更新、刪除

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\House;

class HouseController extends Controller
{
    public function index()
    {
        return House::all();                    //檢索所有資料
    }

    public function show(House $House)
    {
        return $House;                          //檢索單筆資料
    }

    public function store(Request $request)
    {
        $House = House::create($request->all());

        return response()->json($House, 201);   //資料新增,回傳201代表資料成功新增
    }

    public function update(Request $request, House $House)
    {
        $House->update($request->all());

        return response()->json($House, 200);   //資料更新,回傳200代表OK
    }

    public function delete(House $House)
    {
        $House->delete();

        return response()->json(null, 204);    //資料刪除,回傳204代表動作成功執行不回傳內容
    }
}

之後我們到api.php裡去加入Route,下面是檔案原型

<?php

use Illuminate\Http\Request;

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

加入HouseAPI的Route

<?php

use Illuminate\Http\Request;
use App\House;

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

//HouseController@後面都有對應的function
Route::get('houses', 'HouseController@index');
Route::get('houses/{house}', 'HouseController@show');
Route::post('houses', 'HouseController@store');
Route::put('houses/{house}', 'HouseController@update');
Route::delete('houses/{house}', 'HouseController@delete');

基本的CALL API路由都設定好了再來起Laravel的本機伺服器,網址輸入http://127.0.0.1:8000/api/houses,看到以下畫面就成功了。

https://ithelp.ithome.com.tw/upload/images/20181023/20108846kbMNqYAxwE.png

這邊建議可以安裝JSON Formatter讓呼叫出來的API排序美觀又易讀。

本篇就介紹到此,下次見~


上一篇
Day8 - Vue 專案啟動 Routing & Material
下一篇
Day12 - PHP-測試API的CRUD
系列文
VUE & PHP (Apache2) & Docker 實戰開發30

尚未有邦友留言

立即登入留言