先決條件

在開始之前,您需要準備以下內容:


API 基礎知識

創建 Laravel 項目

首先,使用 Composer 創建一個新的 Laravel 項目:

composer create-project laravel/laravel laravel-api-create-test

然后,啟動開發服務器:

cd laravel-api-create-test
php artisan serve

此命令將在默認的 http://127.0.0.1:8000 上運行服務器。

創建模型和遷移

接下來,使用以下命令創建一個模型,并同時生成遷移文件:

php artisan make:model Product -m

編輯生成的遷移文件(database/migrations/{timestamp}_create_products_table.php),為 products 表添加以下字段:

$table->string('title');
$table->longText('description');

運行遷移以創建數據庫表:

php artisan migrate

app/Models/Product.php 文件中,設置可填充字段:

protected $fillable = ['title', 'description'];

創建控制器

通過以下命令為 Product 模型創建控制器:

php artisan make:controller Api/ProductController --model=Product

在生成的 app/Http/Controllers/[Api](http://m.dlbhg.com/wiki/api/)/ProductController.php 文件中,添加以下邏輯:

public function index() {
    $products = Product::all();
    return response()->json(['status' => true, 'products' => $products]);
}

首先,創建一個請求類:

php artisan make:request StoreProductRequest

然后,在 store 方法中添加以下代碼:

public function store(StoreProductRequest $request) {
    $product = Product::create($request->all());
    return response()->json(['status' => true, 'message' => '產品創建成功!', 'product' => $product], 200);
}

定義路由

routes/api.php 文件中,添加以下代碼以定義 API 路由:

use AppHttpControllersApiProductController;

Route::apiResource('products', ProductController::class);

確保數據庫中存在 products 表。如果表尚未創建,可以通過以下命令運行遷移:

php artisan migrate

測試 API

在測試 API 之前,確保 app/Http/Requests/StoreProductRequest.php 文件中的 authorize 方法返回 true

使用 Postman 測試

  1. 創建新產品

  2. 獲取所有產品


使用 Sanctum 驗證 API

為了保護 API 安全,可以使用 Laravel Sanctum 提供的令牌身份驗證功能。

安裝 Sanctum

  1. 安裝 Sanctum 包:

    composer require laravel/sanctum
  2. 發布 Sanctum 配置文件:

    php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"
  3. app/Http/Kernel.php 文件中,將 Sanctum 中間件添加到 api 中間件組:

   use LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful;

   protected $middlewareGroups = [
       'api' => [
           EnsureFrontendRequestsAreStateful::class,
           'throttle:api',
           IlluminateRoutingMiddlewareSubstituteBindings::class,
       ],
   ];

創建用戶控制器

通過以下命令創建用戶控制器:

php artisan make:controller UserController

app/Http/Controllers/UserController.php 文件中,添加以下代碼以實現用戶登錄和令牌生成:

public function index(Request $request) {
    $user = User::where('email', $request->email)->first();

    if (!$user || !Hash::check($request->password, $user->password)) {        return response(['message' => ['這些憑據與我們的記錄不匹配。']], 404);
    }    $token = $user->createToken('my-app-token')->plainTextToken;    return response(['user' => $user, 'token' => $token], 201);
}

創建用戶種子數據

通過以下命令生成用戶種子文件:

php artisan make:seeder UsersTableSeeder

database/seeders/UsersTableSeeder.php 文件中,添加以下代碼:

DB::table('users')->insert([
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    'password' => Hash::make('password'),
]);

運行種子:

php artisan db:seed --class=UsersTableSeeder

保護路由

routes/api.php 文件中,添加以下代碼以保護產品路由:

use AppHttpControllersUserController;

Route::post('login', [UserController::class, 'index']);Route::middleware('auth:sanctum')->group(function () {
    Route::apiResource('products', ProductController::class);
});

處理 API 錯誤

Laravel 提供了多種方法來處理 API 錯誤,例如使用 try-catch 塊或自定義響應。例如:


if (!$user || !Hash::check($request->password, $user->password)) {    return response(['message' => ['這些憑據與我們的記錄不匹配。']], 404);
}

總結

通過 Laravel 的 Eloquent 模型和 Sanctum 中間件,您可以輕松創建、測試和保護 API。Eloquent 提供了與數據庫交互的高效方式,而 Sanctum 則為 API 提供了安全保障。

希望本文能幫助您快速上手 Laravel API 的開發與測試!

原文鏈接: https://kinsta.com/blog/laravel-api/
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
如何使用Python創建API - Ander Fernández Jauregui
下一篇
初學者指南:在Laravel中創建新的API端點 - Medium
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
九九精品视频在线看| 亚洲一区在线观看免费观看电影高清| 777亚洲妇女| 欧美一a一片一级一片| 麻豆成人久久精品二区三区红| 日韩 欧美一区二区三区| 午夜精品久久一牛影视| 成人少妇影院yyyy| 91福利在线导航| 91精品国产手机| 欧美日本一区二区三区| xnxx国产精品| 国产精品第一页第二页第三页| 国产欧美一区二区精品婷婷| 一区二区在线观看免费| 亚洲超碰精品一区二区| 青青草国产成人av片免费| 国产suv精品一区二区883| voyeur盗摄精品| 91精品黄色片免费大全| 亚洲欧美综合色| 亚洲va欧美va国产va天堂影院| 免费成人在线观看视频| 国产999精品久久| 91精品国产综合久久香蕉的特点| 日韩一区中文字幕| 国产精品亲子伦对白| 综合久久给合久久狠狠狠97色| 亚洲地区一二三色| 日本不卡123| 色88888久久久久久影院野外| 欧美一级搡bbbb搡bbbb| 国产精品久久久久久户外露出| 亚洲一区二区三区免费视频| 成人精品一区二区三区中文字幕| 久久综合久久综合久久综合| 亚洲成人三级小说| 国产精品一区二区不卡| 日韩视频国产视频| 亚洲电影一级黄| 午夜精品成人在线| 欧美久久高跟鞋激| 久久99国产精品麻豆| 色婷婷久久综合| 亚洲激情自拍偷拍| 欧美视频一区二区在线观看| 国产精品天天看| 久久99国内精品| 91首页免费视频| 日韩欧美亚洲一区二区| 亚洲精品免费电影| 欧美亚日韩国产aⅴ精品中极品| 国产不卡高清在线观看视频| 国产日本欧美一区二区| 成人免费毛片片v| 亚洲电影一级片| 日韩欧美一级二级三级| 国产精品69久久久久水密桃| 美女在线视频一区| 97久久精品人人做人人爽50路| 亚洲色图制服丝袜| 7777精品伊人久久久大香线蕉最新版| 欧美激情资源网| 国产一区二区在线观看视频| 日韩欧美国产wwwww| 色婷婷综合久久久久中文一区二区 | 日日欢夜夜爽一区| 国产日韩欧美精品一区| 欧美日韩mp4| youjizz久久| 91影院在线免费观看| 久久亚洲综合色一区二区三区| 亚洲已满18点击进入久久| 国内精品视频666| 91麻豆产精品久久久久久| 国产日产欧美一区| 久久99精品国产91久久来源| 精品国产乱码久久久久久1区2区 | 日韩视频永久免费| 国产精品一区二区无线| 丝袜美腿亚洲一区二区图片| 欧美激情一区二区三区在线| 欧美刺激午夜性久久久久久久| 欧美日韩国产精品自在自线| 91免费观看在线| 亚洲成年人影院| 亚洲女人小视频在线观看| 精品久久国产97色综合| 色美美综合视频| 国产成人在线免费| 日韩精品乱码av一区二区| 国产精品―色哟哟| 久久精品欧美日韩| 欧美岛国在线观看| 日韩精品一区在线| 欧美一区二区三区在线电影| 欧美一区二区高清| 国产午夜久久久久| 亚洲国产一区二区a毛片| 视频一区二区三区中文字幕| 亚洲综合图片区| 亚洲综合色噜噜狠狠| 亚洲精品久久久蜜桃| 亚洲男人电影天堂| 一区二区欧美视频| 国产精品三级电影| 免费在线观看精品| 日本道色综合久久| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩精品一区二区三区四区| 国产成人一区在线| 99久久er热在这里只有精品15| 91在线国产观看| wwwwxxxxx欧美| 亚洲大尺度视频在线观看| 奇米影视在线99精品| 麻豆成人久久精品二区三区红 | 国产乱子伦一区二区三区国色天香 | 国产精品免费网站在线观看| 亚洲综合一二区| 久久精品国内一区二区三区| 国产在线乱码一区二区三区| 亚洲色图在线看| 免费看日韩a级影片| 欧美久久免费观看| 午夜精品久久久久| 国产精品综合一区二区三区| 97久久久精品综合88久久| 欧美一区二区三级| 亚洲欧洲日韩女同| 奇米色777欧美一区二区| 国产黑丝在线一区二区三区| 国模冰冰炮一区二区| 欧美电影在哪看比较好| 国产精品久久看| 黑人巨大精品欧美一区| 久久色在线观看| 日韩国产欧美在线视频| 国产夜色精品一区二区av| 日韩激情在线观看| 九九九精品视频| 日韩一区二区电影网| 免费观看在线综合| 欧美日韩精品电影| 天天色综合天天| 国产精品全国免费观看高清| 麻豆91免费观看| 欧美一区二区三区系列电影| 午夜在线电影亚洲一区| 色素色在线综合| 亚洲综合色网站| 精品国产乱码久久久久久久| 日韩欧美国产一二三区| 樱桃视频在线观看一区| 91极品视觉盛宴| 国产在线国偷精品免费看| 国产精品视频一二三区| 欧美精品丝袜中出| 亚洲欧美偷拍三级| 欧美色区777第一页| 日韩高清国产一区在线| 日韩免费高清电影| 国产一区二区精品久久99| 亚洲成人av一区二区三区| 欧美色图一区二区三区| 日本一道高清亚洲日美韩| 欧美日韩在线三区| 免播放器亚洲一区| 国产亚洲成aⅴ人片在线观看| 欧美精品在线一区二区| 成人国产在线观看| 亚洲国产精品一区二区尤物区| 日韩视频在线观看一区二区| eeuss鲁一区二区三区| 国模大尺度一区二区三区| 国产精品综合在线视频| 欧美国产精品一区二区三区| 91啪在线观看| 国产美女一区二区| 国产精品福利一区二区三区| 久久国产婷婷国产香蕉| 久久99精品久久久久久国产越南 | 欧美无砖砖区免费| 国产精品综合久久| 床上的激情91.| 国产精品88888| 国产揄拍国内精品对白| 日韩影院免费视频| 经典三级视频一区| 国产精品福利在线播放| 精品成人一区二区三区四区| 欧美一区二区视频网站| 成人美女在线观看| 亚欧色一区w666天堂| 一区二区三区在线免费| 久久久.com| 中文字幕不卡在线观看| 成人免费在线观看入口| 亚洲高清免费在线| 国产真实乱偷精品视频免|