PHP

使用PHP Laravel 6 建立RESTful API

潘碧華 Alice Pan 2020/07/27 18:28:14
1150

使用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

再一次測試成功!! 

 

潘碧華 Alice Pan