上篇我們建立完假資料後就能開始建立資料的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();
});
加入House
API的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
,看到以下畫面就成功了。
這邊建議可以安裝JSON Formatter讓呼叫出來的API排序美觀又易讀。
本篇就介紹到此,下次見~