iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1

Day16 RESTful api 簡介

今天來介紹後端常用的api風格,restful api。使用restful api風格,可以讓使用者清楚的知道這支api是在做什麼,也好有個統一的共識。在laravel中也通常使用這種風格,之前講controller那篇文章,使用的php artisan make:controller TodoController --api建立出來的檔案,內容也是依照restful api建立的喔。

什麼是api

在介紹restful api之前,先講講什麼是api?api是前後端溝通的管道。為了使前端與後端串接,後端會開出URI以及request的method、header、body,其中還有一些細向規定,定好後寫在文件上就是api文件,前端便是靠api文件接上後端的資料的。

RESTful api

RESTful api(Representational State Transfer)表現層狀態轉換,是一種常見的api風格。使用GET、POST、PUT、DELETE 四種method分別對應到資料的操作CRUD,使用http method當作動詞,讓api看起來簡單直觀。

例如,這支api使用GET method,我就大概可以知道它可以get到某個資源。

以下是method跟CRUD的對應,我以todolist中的task的api為例:

method URL 動作
GET 127.0.0.1:8000/api/task 取得所有task
GET 127.0.0.1:8000/api/task/1 取得1號task
POST 127.0.0.1:8000/api/task 新增task
PUT 127.0.0.1:8000/api/task/1 更新1號task
DELETE 127.0.0.1:8000/api/task/1 刪除1號task

你可以發現由method+URL可以發現,使用者可以想像使用這個api會做什麼動作

RESTful風格 Route設計

laravel可以使用apiResource這個方法設計route,配合製作controller時的--api,laravel會直接幫你設定好RESTful api風格的route。
例如:

Route::middleware('tokenAuth')->apiResource('task', 'api\TaskController');

這樣我就直接設定好task的CRUD的route了,你可以用下面這個指令看到route設定

php artisan route:list

結果:

你會看到laravel幫你設定好了5個route,剛好對應到TaskController檔案中的5個function。

當然你也可以一條一條設定route,但是設計api時還請使用RESTful api風格,RESTful api只是一種風格,並不是標準規範,但它被廣泛的使用著,若不知道怎麼設計route的朋友們,不妨試試,或許可以更簡單明瞭的表達你的api。


上一篇
Day15 laravel middleware篇
下一篇
Day17 介紹request發送工具 Postman
系列文
後端新手 使用laravel 從零開始 到開出api30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言