什么是RESTful API?

RESTful API(全稱為 Representational State Transfer API)是一種遵循 REST 架構原則的構建 API


準備工作

在開始構建 Laravel API 之前,請確保您已安裝 Laravel 11。如果尚未安裝,可以通過 Composer 進行安裝:

composer create-project laravel/laravel laravel-api

安裝完成后,進入項目目錄:

cd laravel-api

接下來,配置 .env 文件中的數據庫連接信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_api
DB_USERNAME=root
DB_PASSWORD=

完成配置后,運行以下命令以創建默認表結構:

php artisan migrate

在 Laravel 11 中創建 RESTful API

1. 定義 API 路由

在 Laravel 中,API 路由通常定義在 routes/api.php 文件中。以下是為示例資源 "Car" 創建 API 路由的代碼:

use IlluminateSupportFacadesRoute;
use AppHttpControllersCarController;

Route::apiResource('cars', CarController::class);

上述代碼會自動生成用于 CRUD 操作的路由,包括 indexstoreshowupdatedestroy 方法。


2. 創建模型和遷移

運行以下 Artisan 命令,為 "Car" 資源生成模型、遷移和工廠:

php artisan make:model Car -m

然后,修改生成的遷移文件 database/migrations/xxxx_xx_xx_create_cars_table.php,定義表結構:

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreateCarsTable extends Migration
{
    public function up()
    {
        Schema::create('cars', function (Blueprint $table) {
            $table->id();
            $table->string('make');
            $table->string('model');
            $table->integer('year');
            $table->decimal('price', 10, 2);
            $table->timestamps();
        });
    }    public function down()
    {
        Schema::dropIfExists('cars');
    }
}

運行以下命令以執行遷移,創建數據庫表:

php artisan migrate

3. 創建控制器

使用以下命令生成 API 控制器:

php artisan make:controller CarController --api

然后,編輯生成的控制器文件 app/Http/Controllers/CarController.php,實現 CRUD 操作邏輯:

    return response()->noContent();
}

}

use AppModelsCar;
use IlluminateHttpRequest;
use AppHttpResourcesCarResource;

class CarController extends Controller
{
public function index()
{
return CarResource::collection(Car::all());
}

public function store(Request $request)
{
$validated = $request->validate([

'make' => 'required|string|max:255',
'model' => 'required|string|max:255',

'year' => 'required|integer',
'price' => 'required|numeric',
]);

$car = Car::create($validated);

return new CarResource($car);
}

public function show(Car $car)
{
return new CarResource($car);
}

public function update(Request $request, Car $car)
{
$validated = $request->validate([

'make' => 'required|string|max:255',
'model' => 'required|string|max:255',

'year' => 'required|integer',
'price' => 'required|numeric',
]);

$car->update($validated);

return new CarResource($car);
}

public function destroy(Car $car)
{
$car->delete();

return response()->noContent();
}
}

4. 創建 API 資源

為了確保 API 響應的結構化和一致性,可以使用 Laravel 提供的 API 資源。運行以下命令生成資源類:

php artisan make:resource CarResource

然后,編輯生成的資源文件 app/Http/Resources/CarResource.php

namespace AppHttpResources;

use IlluminateHttpResourcesJsonJsonResource;class CarResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'make' => $this->make,
            'model' => $this->model,
            'year' => $this->year,
            'price' => $this->price,
            'created_at' => $this->created_at->toDateTimeString(),
            'updated_at' => $this->updated_at->toDateTimeString(),
        ];
    }
}

結論

通過本指南,您已經學習了如何在 Laravel 11 中構建一個完整的 RESTful API。我們涵蓋了從定義 API 路由到創建模型、控制器和資源的完整流程。此外,您還可以進一步優化 API,例如使用 Laravel Swagger 生成 API 文檔,或通過 PHPUnit 進行單元測試。

遵循這些最佳實踐,您可以高效地構建出可擴展且安全的 Web 應用程序

原文鏈接: https://techliphant.com/blog/ultimate-guide-to-building-a-restful-api-in-laravel-11/
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
UI5 Web Components 2.0 中的 Popover API - SAP
下一篇
使用Spring Boot和查詢方法構建只讀API
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
奇米777欧美一区二区| 一区二区成人在线| 久久这里只精品最新地址| 一区二区不卡在线播放 | 高清久久久久久| 国产精品嫩草影院com| av中文一区二区三区| 国产精品女同互慰在线看| 99这里只有久久精品视频| 亚洲人成亚洲人成在线观看图片| 99久久婷婷国产综合精品电影 | 欧美肥大bbwbbw高潮| 国产一区二区免费在线| 亚洲精品视频自拍| 欧美成人三级电影在线| 不卡的电影网站| 日韩精彩视频在线观看| 国产欧美精品区一区二区三区 | 在线观看91视频| 久久99精品久久久久久国产越南 | 高清beeg欧美| 日韩在线播放一区二区| 日本一区二区三区视频视频| 日本高清不卡在线观看| 国产一区中文字幕| 亚洲视频一区在线观看| 精品国产乱子伦一区| 在线观看日韩一区| 丁香婷婷综合五月| 久久91精品久久久久久秒播| 日韩毛片精品高清免费| 久久久久综合网| 欧美乱熟臀69xxxxxx| 成人动漫中文字幕| 国产乱子轮精品视频| 亚洲成人黄色影院| 亚洲精品免费一二三区| 国产精品乱码妇女bbbb| 久久无码av三级| 精品88久久久久88久久久| 欧美日韩国产精品成人| 欧美亚洲尤物久久| 色偷偷成人一区二区三区91| 国产99久久久国产精品潘金网站| 美女脱光内衣内裤视频久久网站| 亚洲午夜免费视频| 亚洲蜜桃精久久久久久久| 国产精品电影一区二区三区| 中文一区在线播放| 日本一区二区三区国色天香 | 久久久.com| 国产精品午夜春色av| 精品国产99国产精品| 日韩一区二区三区精品视频| 欧美日韩国产高清一区| 欧美日本一区二区三区| 欧美日韩高清不卡| 欧美精品在线一区二区三区| 欧美日韩一区不卡| 欧美一区二区啪啪| 国产网红主播福利一区二区| 国产欧美1区2区3区| 国产精品久久久久久久第一福利| 成人免费小视频| 五月婷婷色综合| 激情综合色综合久久综合| 成人教育av在线| 欧美久久久久中文字幕| 精品精品欲导航| 国产精品国产三级国产aⅴ无密码| 日韩美女视频一区二区| 三级精品在线观看| 国产精品综合二区| 色综合天天狠狠| 欧美v亚洲v综合ⅴ国产v| 国产精品久久久久天堂| 图片区小说区区亚洲影院| 国产iv一区二区三区| 欧美日韩一二三区| 久久久久国产精品厨房| 亚洲成人tv网| 99久久久精品免费观看国产蜜| 91精品国产免费| 一区二区三区国产精品| 韩国毛片一区二区三区| 欧美日韩在线三区| 中文字幕在线视频一区| 日本欧美一区二区三区乱码| jizzjizzjizz欧美| 久久美女艺术照精彩视频福利播放| 亚洲制服丝袜一区| 北条麻妃一区二区三区| 久久尤物电影视频在线观看| 亚洲一区二区三区影院| 99热99精品| 国产精品免费丝袜| 国产精品资源网| 精品国产精品一区二区夜夜嗨| 亚洲国产综合色| 在线免费观看视频一区| 亚洲天堂精品在线观看| av亚洲产国偷v产偷v自拍| 国产亚洲欧美色| 国产伦精品一区二区三区免费迷| 日韩一区二区精品| 日韩激情一二三区| 欧美一区二区三区四区久久| 日本欧美加勒比视频| 日韩精品最新网址| 国产麻豆精品久久一二三| 国产视频911| 成人动漫中文字幕| 亚洲免费在线看| 色婷婷亚洲综合| 亚洲一区二区欧美日韩| 欧美午夜理伦三级在线观看| 亚洲影院在线观看| 欧美人xxxx| 精品中文av资源站在线观看| 国产夜色精品一区二区av| 成人国产精品视频| 亚洲综合999| 日韩美女视频在线| 成人黄色小视频| 亚洲国产精品一区二区尤物区| 91精品国产色综合久久不卡电影 | 黄网站免费久久| 国产女主播视频一区二区| 99re这里只有精品首页| 亚洲一区在线观看免费| 日韩欧美高清dvd碟片| 成人黄色在线网站| 午夜私人影院久久久久| 久久精品一级爱片| 色老头久久综合| 精品一区二区三区的国产在线播放 | 91视频观看免费| 视频一区中文字幕国产| 久久中文字幕电影| 在线亚洲人成电影网站色www| 日本视频中文字幕一区二区三区| 久久久一区二区三区| 精品视频1区2区3区| 9i在线看片成人免费| 久久99国产精品久久99果冻传媒| 亚洲欧美日韩国产手机在线 | 精品久久99ma| 欧美丰满一区二区免费视频| 成人激情免费网站| 麻豆精品在线看| 视频一区欧美精品| 亚洲在线一区二区三区| 国产精品久久久久7777按摩| 亚洲精品一区在线观看| 91精品黄色片免费大全| 97se亚洲国产综合在线| 国产一区二区三区av电影 | 在线观看亚洲精品视频| 成人理论电影网| 国产高清不卡一区| 久久精品国产77777蜜臀| 亚洲成av人片一区二区梦乃| 亚洲欧美国产高清| 亚洲日穴在线视频| 亚洲三级在线观看| 亚洲激情自拍视频| 亚洲日本va午夜在线影院| 中文字幕亚洲成人| 国产精品第四页| 亚洲美女免费在线| 亚洲另类一区二区| 亚洲视频一区在线| 夜色激情一区二区| 天堂av在线一区| 日本va欧美va瓶| 国产美女娇喘av呻吟久久| 国产在线视频一区二区| 黄色资源网久久资源365| 韩国一区二区在线观看| 国产精品亚洲一区二区三区在线| 国产精品资源站在线| 成人自拍视频在线| 97超碰欧美中文字幕| 欧美日韩激情一区二区三区| 欧美群妇大交群中文字幕| 日韩欧美国产综合| 国产精品乱码久久久久久 | 一个色在线综合| 日韩av在线发布| 国产成人免费视频一区| 99久久综合国产精品| 欧美精品在欧美一区二区少妇| 精品国产三级a在线观看| 亚洲特级片在线| 久久精品国产澳门| 色婷婷综合激情| 久久久亚洲精品石原莉奈| 中文欧美字幕免费| 日产国产高清一区二区三区 | 午夜精品久久久久久不卡8050|