首頁 >後端開發 >php教程 >構建一個具有Laravel Restful後端的React應用:第1部分,Laravel 9 API

構建一個具有Laravel Restful後端的React應用:第1部分,Laravel 9 API

Joseph Gordon-Levitt
Joseph Gordon-Levitt原創
2025-03-01 09:14:10495瀏覽

Laravel和React是兩種流行的Web開發技術,用於構建現代Web應用程序。 Laravel是服務器端的PHP框架,而React是客戶端JavaScript庫。該教程是對Laravel和React的介紹,將它們結合在一起以創建現代Web應用程序。

在現代Web應用程序中,該服務器的工作有限,可以通過某些API(應用程序編程界面)端點來管理後端。客戶端將請求發送到這些端點,並且服務器返迴響應。但是,服務器不關心客戶端如何呈現視圖,這與關注原則的分離完全符合。該體系結構允許開發人員為Web構建強大的應用程序以及針對不同設備的不同設備。

在本教程中,我們將使用最新版本的Laravel,版本9來創建一個安息的後端API。前端將包含用React編寫的組件。我們將構建一個足智多謀的產品上市應用程序。教程的第一部分將更多地關注Laravel概念和後端。讓我們開始。它具有表達性語法,該語法偏愛公約而不是配置範式。 Laravel擁有您需要從開箱即用的項目開始的所有功能。但是就我個人而言,我喜歡Laravel,因為它將PHP的開髮變成了完全不同的體驗和工作流程。

,另一方面,React是Facebook開發的流行JavaScript庫,用於構建單頁應用程序。 React可以幫助您將視圖分解為每個組件描述應用程序UI的一部分的組件。基於組件的方法具有組件可重複使用性和模塊化的額外好處。

>

為什麼Laravel and React?

如果您是為Web開發的,則可能傾向於為服務器和客戶端使用單個代碼庫。但是,並非每個公司都賦予開發人員使用自己選擇的技術的自由,這是出於某些充分的理由。在整個項目中使用JavaScript堆棧是當前的規範,但是沒有什麼可以阻止您為服務器端和客戶端選擇兩種不同的技術。

那麼,Laravel和React Recess with with for narve。很好,實際上。儘管Laravel已經記錄了對Vue.js的支持,這是另一個JavaScript框架,但我們將使用React作為前端,因為它更受歡迎。另外,如果您在React或Laravel方面都有事先經驗,那麼您將能夠充分利用本教程。但是,如果您是兩個框架的新手,請不要擔心。該教程是從初學者的角度寫的,您應該能夠毫無麻煩地趕上。您可以在GitHub上找到教程的源代碼。

>安裝和設置Laravel Project

在開始使用Laravel之前,請確保您已經在本地計算機上安裝了PHP和Composer。這是因為Laravel基於PHP,並使用作曲家來管理所有依賴關係。在計算機上安裝作曲家時,請確保選擇將其添加到路徑環境變量中的選項,以便在全球範圍內訪問作曲家。 一旦安裝了作曲家,您應該能夠生成一個新鮮的Laravel項目,如下所示:

>如果一切順利,您應該能夠在productsController

的開發服務器上為我們的應用程序提供服務,我們在app/http/app/hhttp/controllers/controllers/productscontrolllollerer.plollerer.phppppers
composer create-project laravel/laravel example-app<br>
上都可以找到。

>路由/api.php帶有新導入和路由。 如果您還沒有註意到,我將產品實例注入了控制器方法中。這是Laravel隱式約束的一個例子。 Laravel試圖將模型實例名稱 product $ product

與URI段名稱 {product} <pre class="brush:php;toolbar:false">&lt;?php&lt;br&gt;&lt;br&gt;namespace App\Http\Controllers;&lt;br&gt;&lt;br&gt;use Illuminate\Http\Request;&lt;br&gt;use App\Product;&lt;br&gt;&lt;br&gt;class ProductsController extends Controller&lt;br&gt;{&lt;br&gt;&lt;br&gt; public function index()&lt;br&gt; {&lt;br&gt; return Product::all();&lt;br&gt; }&lt;br&gt;&lt;br&gt; public function show(Product $product)&lt;br&gt; {&lt;br&gt; return $product;&lt;br&gt; }&lt;br&gt;&lt;br&gt; public function store(Request $request)&lt;br&gt; {&lt;br&gt; $product = Product::create($request-&gt;all());&lt;br&gt;&lt;br&gt; return response()-&gt;json($product, 201);&lt;br&gt; }&lt;br&gt;&lt;br&gt; public function update(Request $request, Product $product)&lt;br&gt; {&lt;br&gt; $product-&gt;update($request-&gt;all());&lt;br&gt;&lt;br&gt; return response()-&gt;json($product, 200);&lt;br&gt; }&lt;br&gt;&lt;br&gt; public function delete(Product $product)&lt;br&gt; {&lt;br&gt; $product-&gt;delete();&lt;br&gt;&lt;br&gt; return response()-&gt;json(null, 204);&lt;br&gt; }&lt;br&gt;&lt;br&gt;}&lt;br&gt;</pre>匹配。如果找到匹配項,則將產品模型的實例注入到控制器操作中。如果數據庫沒有產品,則返回404錯誤。最終結果與以前相同,但代碼較少。 <strong></strong>打開Postman或VS代碼,產品的端點應正常工作。確保您具有<code> ACCEPT:application/json<pre class="brush:php;toolbar:false">// Include this at the file top:&lt;br&gt;use App\Http\Controllers\ProductsController;&lt;br&gt;&lt;br&gt;/**&lt;br&gt;**Basic Routes for a RESTful service:&lt;br&gt;**Route::get($uri, $callback);&lt;br&gt;**Route::post($uri, $callback);&lt;br&gt;**Route::put($uri, $callback);&lt;br&gt;**Route::delete($uri, $callback);&lt;br&gt;**&lt;br&gt;*/&lt;br&gt;&lt;br&gt;&lt;br&gt;Route::get('products', 'ProductsController@index');&lt;br&gt;&lt;br&gt;Route::get('products/{product}', 'ProductsController@show');&lt;br&gt;&lt;br&gt;Route::post('products','ProductsController@store');&lt;br&gt;&lt;br&gt;Route::put('products/{product}','ProductsController@update');&lt;br&gt;&lt;br&gt;Route::delete('products/{product}', 'ProductsController@delete');&lt;br&gt;&lt;br&gt;&lt;br&gt;</pre>標題啟用。如果您希望服務器返回JSON響應,則必須更改默認異常處理行為。 Laravel具有一個專門用於<p>app/exceptions/handler.php <code>Product $product的例外處理程序的處理程序類。該類主要具有兩種方法: report()<code>{product} render()

Report<p>方法對於報告和記錄異常事件很有用,而渲染方法用於遇到異常時返迴響應。更新渲染方法以返回JSON響應:<code>Accept : application/json

composer create-project laravel/laravel example-app<br>
>

laravel還允許我們使用一組驗證規則驗證傳入的HTTP請求,並在驗證失敗時自動返回JSON響應。驗證的邏輯將放置在控制器內部。 IlluminateHttpRequest對象提供了一種驗證方法,我們可以用來定義驗證規則。讓我們將一些驗證檢查添加到> app/http/http/controllers/productscontroller.php 的商店方法中。但是,API缺乏基本功能,例如身份驗證和限制對未經授權用戶的訪問。 Laravel對身份驗證有開箱即用的支持,並且為其構建API相對容易。我鼓勵您將身份驗證API作為一種練習實施。

<?php<br><br>namespace App\Http\Controllers;<br><br>use Illuminate\Http\Request;<br>use App\Product;<br><br>class ProductsController extends Controller<br>{<br><br>    public function index()<br>	{<br>	    return Product::all();<br>	}<br><br>	public function show(Product $product)<br>	{<br>	    return $product;<br>	}<br><br>	public function store(Request $request)<br>	{<br>	    $product = Product::create($request->all());<br><br>	    return response()->json($product, 201);<br>	}<br><br>	public function update(Request $request, Product $product)<br>	{<br>	    $product->update($request->all());<br><br>	    return response()->json($product, 200);<br>	}<br><br>	public function delete(Product $product)<br>	{<br>	    $product->delete();<br><br>	    return response()->json(null, 204);<br>	}<br><br>}<br>
>我們的後端已經完成了,我們將把重點轉移到前端概念上。在此處查看本系列的第二篇文章:

以上是構建一個具有Laravel Restful後端的React應用:第1部分,Laravel 9 API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:學習Laravel下一篇:學習Laravel