Begin with Web
先認識一下REST
標準的REST應該像這樣
/{resource}/{id}/{component}
舉個例子
- /user - 使用者列表
- /user/1 - ID為1的使用者
- /user/1/picture - ID為1的使用者的照片
主要分為幾種
- GET
- POST
- PUT
- DELETE
每一個REST方法的參數不外乎兩種
Query or Payload
使用場景
- GET - query
- POST - payload
- PUT - payload
- DELETE - (None)
當然Laravel也有
先假設已經有基礎知識
我今天要建立routes
routes/web.php
<?php
// 取得user列表
Route::get('user', 'UserController@getUsers');
// 取得user
Route::get('user/{id}', 'UserController@getUser');
// 修改user
Route::put('user/{id}', 'UserController@updateUser');
// 刪除user
Route::delete('user/{id}', 'UserController@deleteUser');
// 或是大雜燴
Route::resource('user', UserController::class);
Wow, 有個特別不一樣
`resource`
是完整CRUD
<?php
namespace App\Http\Controllers;
class UserController extends Controller
{
public function index()
{
}
public function show($id)
{
}
public function update($id)
{
}
public function destroy($id)
{
}
public function store()
{
}
}
如果我今天只要store?
<?php
Route::resource('user', UserController::class, ['only' => 'store'])
再來是status
為了區分邏輯
REST API
一定是依照status區分
只是 GET 一定是200
其他成功的
也都是2xx開頭
譬如
POST / PUT / DELETE
- 201 - Created (POST專用)
- 202 - Accepted(PUT/DELETE)
- 204 - No Content
回 204 不能有response
再來是錯誤訊息
原則來說
錯誤一定都是4xx
除了常見的,還有下列
- 401 - Unauthorized
- 409 - Conflict
- 422 - Unprocessable Enity
會不會有500?
在你無法識別錯誤的時候
To be continued
begin with web
By michael34435
begin with web
- 798