larvel php restful_Laravel教你简单写出专业的RestfulAPI
下面由Laravel教程欄目給大家介紹Laravel寫出專業的RestfulAPI的方法,希望對需要的朋友有所幫助!
Laravel教你簡單寫出專業的URL
引言
在我們連接了數據庫,并且使用遷移功能創建了數據庫表結構,
使用Seeder為數據庫初步填充了一些偽數據。有了這些準備工作,我們可以考慮做一個資源接口功能,
對外提供數據支持了。
代碼時間
有沒有感覺自己設計的API接口和數據跟別的大廠提供的文檔數據結構不太一樣,
看上去不是那么專業,或者說不是那么標準?我們和大廠還差幾個年級?
laravel提供了簡單的標準方式,可以讓我們遵循最佳實踐寫出專業的url。
比如對于資源,使用restful風格聲明一下的url路由地址:
第一列是http請求方法,第二列是laravel內聲明的路由規則,第三列是對應的控制器方法。上面的資源列表,涵蓋了增刪改查的所有動作,可以說很全面了。
如何快捷地生成上述控制器方法呢?使用laravel腳手架指令,在命令行運行:php artisan make:controller EventsController --resource
我們使用 –resource 選項,會在目標控制器內生成上述的所有方法。
生成的文件位于 app/Http/Controllers/EventsController.php 內,初始化的內容如下:
這些方法真的是開箱即用啊。
那么,我們還要手動一條一條地聲明上面的那些路由條目嗎?那真是噩夢啊。還好,laravel幫我們做好了,只用Route類的 resource 方法注冊資源就可以了:Route::resource('events', 'EventsController');
使用資源路由方法,只用指定路由名稱,和對應的控制器方法,就可以不用繁瑣地寫那些路由,和控制器方法了。
為方便展示,我們把數據渲染到視圖文件,首先創建 resources/views/events/index.blade.php 視圖文件,使用默認的布局文件,填充以下代碼:@extends('layouts.app')
@section('content')
Events
@endsection
打開 app/Http/Controllers/EventsController 文件并修改 index 方法:public function index(){
return view('events.index');}
大家看到了,上述方法內是沒有數據庫數據交互的,我們下面引入模型,并渲染到視圖內。在控制器頂部添加如下引用:use App\Event;
在index方法內填充以下代碼:$events = Event::all();return view('events.index')->with('events', $events);
有了以上的數據,在視圖內簡單地遍歷輸出內容,修改視圖文件如下:
Events
@forelse ($events as $event)
{{ $event->name }}@empty
No events found!@endforelse
模板文件內@forelse 方法會判斷是否 $events 變量至少有一個元素可供遍歷,如果沒有就輸出 @empty區塊的內容。在瀏覽器內訪問路由地址,輸出內容大致如下圖。因為使用的Faker填充的偽數據,所以看上去是這樣的:
如果數據量太大,這一頁估計要加載很久,列表很長。所以需要分頁了。加入分頁功能,使用的SQL語句大概是這樣的:select id, name from events order by id asc limit 10 offset 0;
select id, name from events order by id asc limit 10 offset 10;
控制器內使用分頁功能,簡單對模型調用paginate方法即可:$events = Events::paginate(10);
每頁設置為10條。我們在視圖內,要有一個前一頁,后一頁,以及頁碼的導航條,也不用我們手動寫了。laravel竟然繼承到了paginate方法所返回的 Illuminate\Pagination\LengthAwarePaginator 類內,只用在視圖內添加這樣一行就夠了:{!! $events->links() !!}
生成的導航條如下:
寫在最后
本文簡明扼要地介紹了laravel數據庫填充所使用的方法,我們可以手動填充,
也可以使用第三方庫填充偽數據,效率明顯提升很多。也只要準備好了數據,
才能談得上業務邏輯和接口對接。這些數據也是應用程序的基礎,所以很重要。
本文是對上一章所述laravel數據庫遷移功能的補充。數據庫遷移是一個比較大的動作,
特別是已經上線生產的應用數據庫,如果非到更新遷移的地步不可,需要預期做好演練,
以應對可能的突發事故。
總結
以上是生活随笔為你收集整理的larvel php restful_Laravel教你简单写出专业的RestfulAPI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyecharts官方文档_中国疫情地图
- 下一篇: e7xue.php漏洞_简要分析最近的d