第一步:設置 Laravel 項目

首先,通過 Composer 創建一個新的 Laravel 項目:

composer create-project --prefer-dist laravel/laravel rest-api-crud

第二步:配置 MySQL 數據庫

Laravel 11 默認使用 sqlite 作為數據庫連接類型。要切換到 MySQL,請在 .env 文件中將 DB_CONNECTION 修改為 mysql

DB_CONNECTION=mysql

第三步:使用遷移創建產品模型

運行以下命令,為產品模型創建遷移文件、工廠、控制器等:

php artisan make:model Product -a

第四步:更新遷移文件

打開生成的遷移文件 database/migrations/YYYY_MM_DD_HHMMSS_create_products_table.php,在 up 方法中定義表結構:

public function up(): void
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('details');
        $table->timestamps();
    });
}

然后運行遷移命令:

php artisan migrate

第五步:創建產品存儲庫接口

為產品模型創建存儲庫接口,以實現代碼的模塊化和可維護性:

php artisan make:interface Interfaces/ProductRepositoryInterface

app/Interfaces 目錄下創建 ProductRepositoryInterface.php 文件,并添加以下代碼:

<?php

namespace AppInterfaces;interface ProductRepositoryInterface
{
    public function index();
    public function getById($id);
    public function store(array $data);
    public function update(array $data, $id);
    public function delete($id);
}

第六步:創建產品存儲庫類

為產品模型創建存儲庫類:

php artisan make:class Repositories/ProductRepository

app/Repositories 目錄下創建 ProductRepository.php 文件,并實現接口中的方法。


第七步:綁定接口與實現

ProductRepository 綁定到 ProductRepositoryInterface,以便依賴注入。使用以下命令創建服務提供者:

php artisan make:provider RepositoryServiceProvider

打開 app/Providers/RepositoryServiceProvider.php 文件,在 register 方法中添加以下代碼:

public function register()
{
    $this->app->bind(
        AppInterfacesProductRepositoryInterface::class,
        AppRepositoriesProductRepository::class
    );
}

第八步:請求驗證

創建兩個請求類 StoreProductRequestUpdateProductRequest,用于驗證傳入的數據。可以使用以下命令生成:

php artisan make:request StoreProductRequest
php artisan make:request UpdateProductRequest

在生成的請求類中定義驗證規則。


第九步:創建通用 ApiResponse 類

為了統一 API 響應格式,可以創建一個通用的 ApiResponse 類:

php artisan make:class Classes/ApiResponseClass

app/Classes 目錄下創建 ApiResponseClass.php 文件,并定義通用響應方法。


第十步:創建產品資源

使用以下命令創建資源類:

php artisan make:resource ProductResource

在資源類中定義數據格式化邏輯,以便統一返回的 JSON 數據結構。


第十一步:創建產品控制器

在控制器中使用存儲庫實現 CRUD 操作。打開 app/Http/Controllers/ProductController.php 文件,添加以下代碼以實現控制器邏輯。


第十二步:定義 API 路由

運行以下命令發布 API 路由文件:

php artisan install:api

然后在 routes/[api](http://m.dlbhg.com/wiki/api/).php 文件中定義路由,將控制器方法映射到相應的路由。例如:

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

總結

通過以上步驟,您可以在 Laravel 11 中構建一個功能完善的 代碼的可維護性和擴展性。

完成所有步驟后,運行以下命令啟動開發服務器并測試 API:

php artisan serve

希望這篇指南對您有所幫助!

原文鏈接: https://medium.com/@1415sandalanka/laravel-11-rest-api-crud-with-best-practices-fcc26505e0d2
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
使用Spring Boot和查詢方法構建只讀API
下一篇
我們如何構建教育數據門戶的API
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
国产精品一区二区久久不卡| 中文av字幕一区| 欧美一区二区精美| 日韩一区二区三区电影在线观看 | 国产精品久久久久久久久免费桃花| 国产美女娇喘av呻吟久久| 综合在线观看色| 99精品国产一区二区三区不卡| 成人免费一区二区三区在线观看| aaa欧美色吧激情视频| 一区二区三区产品免费精品久久75| 欧美三级视频在线| 国产真实乱子伦精品视频| 国产精品成人免费在线| 欧美日韩国产一级片| 国产专区欧美精品| 亚洲综合色成人| 久久亚洲一区二区三区明星换脸 | 国产不卡视频一区二区三区| 亚洲欧美日韩国产综合在线| 制服丝袜中文字幕一区| 成人黄色国产精品网站大全在线免费观看| 亚洲人精品午夜| 精品999久久久| 在线观看亚洲专区| 国产一区二区三区| 亚洲国产中文字幕在线视频综合| 2017欧美狠狠色| 欧美日韩在线免费视频| 国产99久久久久久免费看农村| 亚洲电影一级片| 国产精品国产三级国产专播品爱网| 91精品麻豆日日躁夜夜躁| 粉嫩aⅴ一区二区三区四区| 视频一区二区不卡| 日韩毛片一二三区| 国产午夜精品一区二区三区嫩草| 欧美老女人在线| 91行情网站电视在线观看高清版| 国产一区欧美日韩| 婷婷六月综合亚洲| 亚洲综合精品久久| 国产精品成人免费在线| 国产三级久久久| 精品少妇一区二区三区在线视频| 欧美中文字幕亚洲一区二区va在线| 国产·精品毛片| 国产一区二区三区精品视频 | 亚洲欧美日韩一区二区 | 精品一区二区在线观看| 五月激情综合色| 一区二区三区在线播| 中文在线免费一区三区高中清不卡| 777亚洲妇女| 精品视频1区2区| 欧美这里有精品| 成人免费毛片高清视频| 国产精品一二二区| 国产专区欧美精品| 国产一区二三区好的| 久久国产综合精品| 麻豆国产精品官网| 久久精品国产99| 蜜臂av日日欢夜夜爽一区| 日日摸夜夜添夜夜添亚洲女人| 亚洲午夜激情av| 亚洲永久免费视频| 一区二区欧美在线观看| 亚洲精品高清在线观看| 亚洲美女免费在线| 一区2区3区在线看| 亚洲一区在线看| 亚洲午夜久久久| 天天色天天爱天天射综合| 婷婷久久综合九色综合伊人色| 午夜国产精品影院在线观看| 午夜电影网亚洲视频| 香蕉影视欧美成人| 日韩成人免费在线| 久久福利资源站| 国产一区三区三区| 成人91在线观看| 在线视频欧美区| 欧美精品v国产精品v日韩精品 | 丁香六月久久综合狠狠色| 成人av网站大全| 99re成人精品视频| 91免费在线看| 欧美人与性动xxxx| 日韩欧美国产小视频| 日韩精品一区二区三区视频| 精品国产乱码久久久久久蜜臀 | 成人h精品动漫一区二区三区| 成人免费毛片片v| 97se亚洲国产综合自在线不卡 | 日韩欧美二区三区| 日本一区二区高清| 一级日本不卡的影视| 日韩不卡在线观看日韩不卡视频| 久久99蜜桃精品| av电影一区二区| 欧美日韩国产乱码电影| 日韩欧美视频在线| 国产精品日韩精品欧美在线| 亚洲激情图片一区| 蜜桃av一区二区| 99久久精品免费观看| 欧美日韩国产另类不卡| 国产三区在线成人av| 亚洲小说欧美激情另类| 国产在线视频不卡二| 91香蕉视频污在线| 91精品欧美久久久久久动漫| 国产精品丝袜91| 天天综合色天天| heyzo一本久久综合| 6080yy午夜一二三区久久| 久久精品视频免费观看| 亚洲综合一区二区三区| 精品综合免费视频观看| 色综合久久综合中文综合网| 日韩精品一区二区三区在线| 亚洲欧洲日产国产综合网| 日韩电影在线观看网站| 成人av资源站| 8v天堂国产在线一区二区| 中文字幕在线播放不卡一区| 全部av―极品视觉盛宴亚洲| 成人黄色在线网站| 欧美一卡二卡在线| 亚洲精品一二三区| 国产福利一区二区三区| 555www色欧美视频| 亚洲欧美激情小说另类| 国产一区二区中文字幕| 欧美丰满嫩嫩电影| 亚洲精品高清视频在线观看| 国产成人精品免费在线| 91精品国产色综合久久不卡电影| 亚洲人成亚洲人成在线观看图片| 狠狠久久亚洲欧美| 欧美精品日韩综合在线| 亚洲蜜臀av乱码久久精品蜜桃| 国产乱子轮精品视频| 欧美日韩电影一区| 亚洲精品成人在线| 99久久精品国产毛片| 久久久久99精品一区| 麻豆国产一区二区| 欧美一区二区三区在线观看视频| 亚洲免费观看高清| 成人av电影免费观看| 国产亚洲1区2区3区| 麻豆精品一区二区综合av| 欧美色涩在线第一页| 一区二区不卡在线播放 | 一区二区三区免费| 91在线免费播放| 国产精品久久久久久久久免费樱桃 | 国产成人亚洲精品青草天美 | 三级一区在线视频先锋| 欧美色手机在线观看| 一区二区三区毛片| 欧美亚洲一区二区三区四区| 亚洲精品中文在线观看| 色成年激情久久综合| 亚洲另类一区二区| 色综合激情久久| 一区二区三区四区视频精品免费| 色综合久久综合网欧美综合网| 1024成人网色www| 日本久久精品电影| 午夜精品成人在线| 欧美不卡一二三| 国产成人av一区| 日韩理论电影院| 欧美亚洲一区二区在线| 亚洲福利视频导航| 6080午夜不卡| 精品一区二区三区在线播放视频 | 毛片av中文字幕一区二区| 日韩一区二区免费高清| 日韩电影在线免费看| 日韩色在线观看| 国产激情一区二区三区桃花岛亚洲| 精品国产91乱码一区二区三区 | 972aa.com艺术欧美| 一区二区三区资源| 欧美日韩国产高清一区二区三区 | 国产亚洲成年网址在线观看| 成熟亚洲日本毛茸茸凸凹| 91.xcao| 国产精品99久久久久久久女警| 国产精品久久午夜| 欧美性感一类影片在线播放| 日韩**一区毛片| 国产欧美一区二区三区网站| 色综合久久久久综合体桃花网| 亚洲成人综合在线| 久久综合久久综合亚洲|