經過前幾天的環境建置,相信你已經看到自己美美的初始畫面
今天讓我們正式進入Laravel的世界,可能是你的第一次,但!不要害怕,讓我們開始吧!
工欲善其事,必先利其器 - 論語
都2023了不可能還有人用notepad++、記事本在寫程式吧?!
這裡我稍微介紹幾款常用在Laravel開發的編輯器給你參考!
這是Laravel的入口,可以在這裡定義每個入口的方法(method)需要經過的關卡(中介層:Middleware,以後會提到)等
還記得剛開始漂亮的初始畫面嗎?
這被定義在 routes\web.php 下
Route::get('/', function () {
return view('welcome');
});
你可能會發現routes下不只有web.php
其實這又被定義在 app\Providers\RouteServiceProvider.php
Route::middleware('web')
->group(base_path('routes/web.php'));
如果你以後有需要增減都可以在這裡
你可能會問,甚麼情況下會新增,其實你這麼覺得也無可厚非,如果你想把路由通通放到api或web也不是不行
筆者想到的情境大概有兩個思路
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
去限制不讓路由被呼叫過多次
RESTful API是一設計API的風格,並不限於Laravel使用
REST 代表 "Representational State Transfer" 是一種網頁服務架構(Web Service Architecture)方法,提供電腦系統一種標準化溝通的管道。
其特點是
關於這方面如果想要更深入,可以參考我找到的這篇文章
OK,說到這可能有點複雜的,為甚麼要使用REST的風格呢?
很多介紹都是介紹上方所述,至於為甚麼一定要用呢?
筆者之前面試的時候也被問倒
筆者自己整理出一個結論:
REST即是一風格,它讓開發者設計出的簡單、可讀、高效且通用的設計風格。
(PS:誰再在面試問這個,小心我扁你=口=凸
CRUD 即是
下圖是Laravel所提供的設計參考
一般來說,Verb(也可以稱作Method)分為四種
而上圖是設計包含View的
如果是單純API大概會是
Verb | URI | Action | Route Name | 備註 |
---|---|---|---|---|
GET | /photos | index | photos.index | R:取得所有photos(可附加篩選) |
POST | /photos | store | photos.store | C:儲存一photo(資料於body) |
PUT/PATCH | /photos/{photo} | update | photos.update | U:更新photo |
DELETE | /photos/{photo} | destory | photos.destory | D:刪除photo |
其中,PUT和PATCH的差異,筆者有聽過一說法,PUT是把原本在資料中是空的填入,而PATCH就是更新:
舉例:
原始資料
[
'id' => 1,
'name' => null,
'email' => 'test@test.com'
]
使用PUT的傳入
[
'id' => 1,
'name' => ryan,
]
結果
[
'id' => 1,
'name' => ryan,
'email' => null
]
使用PATCH 傳入資料
[
'name' => ryan_wu,
]
結果
[
'id' => 1,
'name' => ryan_wu, ,
'email' => 'test@test.com'
]
僅供參考~
甚麼,這麼快就到總結了嗎?!
關於Route還有很多沒提到像是prefix、resource、group等等方法
在後面實作時會再做介紹的,敬請期待~
RESTful API 就像一本書的章節,每個 URI 是一個章節的標題,HTTP 方法是您閱讀章節的方式。 - ChatGPT