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的一部分的組件。基於組件的方法具有組件可重複使用性和模塊化的額外好處。如果您是為Web開發的,則可能傾向於為服務器和客戶端使用單個代碼庫。但是,並非每個公司都賦予開發人員使用自己選擇的技術的自由,這是出於某些充分的理由。在整個項目中使用JavaScript堆棧是當前的規範,但是沒有什麼可以阻止您為服務器端和客戶端選擇兩種不同的技術。
>如果一切順利,您應該能夠在productsController
的開發服務器上為我們的應用程序提供服務,我們在app/http/app/hhttp/controllers/controllers/productscontrolllollerer.plollerer.phpppperscomposer create-project laravel/laravel example-app<br>
>路由/api.php帶有新導入和路由。 如果您還沒有註意到,我將產品實例注入了控制器方法中。這是Laravel隱式約束的一個例子。 Laravel試圖將模型實例名稱 product $ product
{product} <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?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></pre><div class="contentsignin">登入後複製</div></div><div class="contentsignin">登入後複製</div></div>匹配。如果找到匹配項,則將產品模型的實例注入到控制器操作中。如果數據庫沒有產品,則返回404錯誤。最終結果與以前相同,但代碼較少。 <strong></strong>打開Postman或VS代碼,產品的端點應正常工作。確保您具有<code> ACCEPT:application/json<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// Include this at the file top:<br>use App\Http\Controllers\ProductsController;<br><br>/**<br>**Basic Routes for a RESTful service:<br>**Route::get($uri, $callback);<br>**Route::post($uri, $callback);<br>**Route::put($uri, $callback);<br>**Route::delete($uri, $callback);<br>**<br>*/<br><br><br>Route::get('products', 'ProductsController@index');<br><br>Route::get('products/{product}', 'ProductsController@show');<br><br>Route::post('products','ProductsController@store');<br><br>Route::put('products/{product}','ProductsController@update');<br><br>Route::delete('products/{product}', 'ProductsController@delete');<br><br><br></pre><div class="contentsignin">登入後複製</div></div>標題啟用。如果您希望服務器返回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中文網其他相關文章!