昨天我們的書店開張了,今天要來幫他打造一組 API 試試。
資料建置的部分已經完成囉~有興趣可以看 Laravel 打造一組 API 系列 (1) - API 簡介與環境建置
$ php artisan make:controller BookController
我們這次要使用的路由:
URI | description | HTTP Method |
---|---|---|
api/books | 文章列表 | GET |
api/books/{id} | 特定文章 | GET |
api/books | 新增文章 | POST |
api/books/{id} | 更新文章 | PUT |
api/books/{id} | 刪除文章 | DELETE |
寫在路由定義檔大概長這樣:
Route::get('books', 'BookController@index');
Route::get('books/{id}', 'BookController@show');
Route::post('books', 'BookController@store');
Route::put('books/{id}', 'BookController@update');
Route::delete('books/{id}', 'BookController@destroy');
Tips: 定義好路由後我通常會 Run 一下 php artisan route:list 來確認路由是不是成功註冊。
[補充] 不知道大家有沒有發現我們的路由都很神奇的被加上 api 前綴,這是為什麼呢?
答案就在 RouteServiceProvider.php 內的 mapApiRoutes Function 嘿嘿
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
這邊幫 routes\api.php 內的路由都加上了 prefix 囉!想自己取名字的也可以將 prefix 內改掉試試!
OK!上面確認沒問題後就可以開始在 Controller 內撰寫對應的邏輯。
public function index()
{
return Book::all();
}
讚讚,我們取得所有書店內的書籍囉~~
今天先到這邊~明天繼續來試試其他的路由吧!
routes\api.php 內的路由都加上了 prefix 囉!想自己取名字的也可以將 prefix 內改掉試試
請問一下這個怎麼加