使用PHP Laravel 6 建立RESTful API
使用PHP Laravel 6 建立RESTful API
前言:什麼是RESTful呢? 我把它定義為一種軟體架構的風格,主要的目的可以使 URL 更為簡潔,操作Server 的資料更容易辨別清楚;然而Laravel 最讓人喜歡的部分就是artisan讓你快速建立模組,讓你不愛它也難。
首先建立Laravel的資料夾
composer create-project laravel/laravel thinkpowers
再來讓我們使用 migration建立三個 users, roles, user_role 模型
php artisan make:migration users
修改已建立的migration,應該會在app\database 資料夾底下
執行php artisan migrate 會發現以下的問題:
原來是當我們用composer建立已經有建立users migrate,既然這樣就讓我們本來新增的users migrate砍掉,把原本已建的users改成我們要的Code,然後執行php artisan migrate:refresh,完成我們最終想要的結果
php artisan make:migration roles
php artisan make:migration user_role
最後再執行一次php artisan migrate,完成。
建立User 的Controller
php artisan make:controller UserController –api
修改已建立的UserController,應該會在app\Http\Controllers 資料夾底下
然後打開routes\web.php,在Routes 加入我們需要的code
先讓我們測試第一個API 吧!
執行php artisan serve,打開http://127.0.0.1:8000/user/all,簡單到不可思議
接下來我們使用ORM產生一筆 user 資料
先建立一個User Model php artisan make:model User,如果原生的Code 裡面已經有User Model請刪除後再執行一次。
打開app\User.php,填入此段Code,ORM一定要段不然不能Create
Tip: 如果想更快速建立model, contorller, migration。php artisan make:model User -mc
修改UserController,並使用postman 測試是否有抓到資料
此時你會發現回應419,卡關了怎麼辦?
原因是Laravel 都會自帶 CRSF 驗證,這此處我們必須讓每一request header 帶token,打開Tests 後填入此段code
你會發現你的環境變數多了一個
最後記得修改header
Yes! 我的資料出來了….,然後再繼續修改UserController
用postman 測試一次檢視資料庫,另外說明一下 fristOrCreate 會先檢查email 是否有重複,若無才會繼續執行下去。
新增幾筆資料到users, roles, user_role
修改 UserController
再一次測試成功!!