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中文网其他相关文章!