Laravel 系列 - 5: 探討 API 實作細節

更新於 發佈於 閱讀時間約 1 分鐘

在這一單元中,我將統整實作 API 時需要注意的幾個關鍵細節,除了傳遞資料的規範外,還會提到與前端互動時常見的「小地雷」,幫助大家避免踩雷喔!

接收 Request

參數

對於傳遞進來的參數,我們可以使用 input(傳遞參數, 預設值) 這個方法來取得相應的值。例如:

$val = $this->input('message.url', '')

驗證

傳遞進來的資料可以透過 rule 來驗證,確保符合我們設定的規則。這些規則可以是資料類型、長度,甚至是自定義的複雜驗證規則。詳情可以參考官方文檔

整理

當我們接收到 Request 時,除了直接取得資料,我們還可以將資料轉換成我們自定義的類別物件。這樣不僅能減少 Controller 層的程式碼量,還能提高整體可維護性。這樣的做法能讓其他工程師在處理這些資料時,不用再猜測陣列中的內容是什麼,從而提高開發效率和程式的可讀性。

處理 API

在處理 API 內部邏輯時,建議盡量使用 JSON、陣列(Array)或自訂類別的架構來傳遞資料。這樣不僅能提高資料傳遞的靈活性,也能方便在最終輸出時使用 toArray() 方法將資料轉換為陣列格式。

回傳 Response

一般來說,API 的正常回應會使用 HTTP 狀態碼 200,而當處理發生錯誤時則回傳 500。但如果我們只需要回傳處理成功的狀態,而不需要回傳實際內容時該如何處理呢?

不曉得大家還記不記得之前的文章:新手村導讀 - 4: HTTP 回應狀態碼。原則上,這時候我們可以回傳狀態碼 204,表示「無內容」,而 Laravel 提供了 noContent() 方法來輕鬆實現這一點:

return response()->noContent();

另外,還需要注意的是,回傳內容中的符號最好使用全形符號。這是因為在瀏覽器處理時,中文的半形符號容易丟失,尤其是空格。

隨著對 API 實作的理解加深,相信你將能夠在未來的專案中更加自信地處理各種挑戰。如果有任何問題或建議,歡迎在下方留言,讓我們一起討論與進步!

參考資料

  1. https://laravel.com/docs/10.x/validation#available-validation-rules
  2. https://stackoverflow.com/questions/6243051/how-to-pass-an-array-within-a-query-string
avatar-img
林柏宇的沙龍
2會員
40內容數
test
留言
avatar-img
留言分享你的想法!
林柏宇的沙龍 的其他內容
在程式開發中,輸出變數內容是檢查進展和定位問題的關鍵。本文介紹了PHP的var_dump()函數以及Laravel框架中的dump()和dd()方法,幫助開發者選擇合適的輸出工具。根據需求選擇合適的方法,能使除錯過程更有效率。
這篇文章深入探討 PHP 中的 Array 與 Laravel 框架中的 Collection 之間的主要差異,並分析各自的優缺點。文章介紹了兩者在本質、方法連鎖、高階方法及 Eloquent 互動的區別,並提供實際的使用案例,幫助初學者更好地理解這兩種資料結構的特性。
本文介紹如何在 Laravel 中建立與操作資料庫模型,以及如何有效解決 N + 1 問題等。透過使用 Laravel 的 Eloquent ORM,開發者可以簡化資料庫操作,提高程式的可維護性與性能,是學習 Laravel 的開發者不可錯過的參考資料。
本篇文章介紹了Laravel這個開源PHP框架,重點解析其MVC架構及相關功能,包括中介層、服務層、數據傳輸對象(DTO)與值對象(VO)。Laravel的穩定性與擴展性使其成為臺灣許多企業的首選框架,並提供升級與編碼風格的資源參考,適合所有PHP開發者瞭解和掌握。
本文探討控制反轉(IoC)和依賴注入的設計原則,解釋如何利用這些理念降低程式碼的耦合度,提高可擴展性和測試性。通過案例說明,控制反轉改變了程式控制的方式,並介紹依賴注入的三種注入方式及其在 Laravel 框架中的應用。讀者將能夠理解這些設計原則在實際專案中的重要性。
本文章深入探討物件導向程式設計的三大核心特性,包括封裝、多型和繼承。這些特性對於建立模組化、可擴充以及易於維護的程式架構至關重要。封裝確保資料的隱私和完整性,多型實現靈活的系統設計,繼承則促進程式碼的重用。瞭解這些概念將幫助開發者設計更高效的程式系統。
在程式開發中,輸出變數內容是檢查進展和定位問題的關鍵。本文介紹了PHP的var_dump()函數以及Laravel框架中的dump()和dd()方法,幫助開發者選擇合適的輸出工具。根據需求選擇合適的方法,能使除錯過程更有效率。
這篇文章深入探討 PHP 中的 Array 與 Laravel 框架中的 Collection 之間的主要差異,並分析各自的優缺點。文章介紹了兩者在本質、方法連鎖、高階方法及 Eloquent 互動的區別,並提供實際的使用案例,幫助初學者更好地理解這兩種資料結構的特性。
本文介紹如何在 Laravel 中建立與操作資料庫模型,以及如何有效解決 N + 1 問題等。透過使用 Laravel 的 Eloquent ORM,開發者可以簡化資料庫操作,提高程式的可維護性與性能,是學習 Laravel 的開發者不可錯過的參考資料。
本篇文章介紹了Laravel這個開源PHP框架,重點解析其MVC架構及相關功能,包括中介層、服務層、數據傳輸對象(DTO)與值對象(VO)。Laravel的穩定性與擴展性使其成為臺灣許多企業的首選框架,並提供升級與編碼風格的資源參考,適合所有PHP開發者瞭解和掌握。
本文探討控制反轉(IoC)和依賴注入的設計原則,解釋如何利用這些理念降低程式碼的耦合度,提高可擴展性和測試性。通過案例說明,控制反轉改變了程式控制的方式,並介紹依賴注入的三種注入方式及其在 Laravel 框架中的應用。讀者將能夠理解這些設計原則在實際專案中的重要性。
本文章深入探討物件導向程式設計的三大核心特性,包括封裝、多型和繼承。這些特性對於建立模組化、可擴充以及易於維護的程式架構至關重要。封裝確保資料的隱私和完整性,多型實現靈活的系統設計,繼承則促進程式碼的重用。瞭解這些概念將幫助開發者設計更高效的程式系統。
你可能也想看
Google News 追蹤
Thumbnail
【vocus 精選投資理財/金融類沙龍,輸入 "moneyback" 年訂閱 9 折】 市場動盪時,加碼永遠值得的投資標的——「自己」 川普政府再度拋出關稅震撼彈,全球市場應聲重挫,從散戶到專業投資人,都急著找尋買進殺出的訊號,就是現在,輪到知識進場!把握時機讓自己升級,別放過反彈的機會!
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
在API介接中使用x-www-form-urlencoded格式時,可能會遇到一些踩坑的情況,本文分享了作者在這方面遇到的問題和解決方法。
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
Request內容 package main import ( "fmt" "log" "net/http" "strings" ) func request(w http.ResponseWriter, r *http.Request) { //這些資訊是輸出到伺服器端的列印訊息
Thumbnail
Accept:用戶端能夠接收的內容類型。 Accept: text/plain, text/html Accept-Charset:瀏覽器可以接受的字元編碼集。 Accept-Charset: utf8 Accept-Encoding:指定瀏覽器可以支援的web伺服器返回內容壓縮編碼
Thumbnail
【vocus 精選投資理財/金融類沙龍,輸入 "moneyback" 年訂閱 9 折】 市場動盪時,加碼永遠值得的投資標的——「自己」 川普政府再度拋出關稅震撼彈,全球市場應聲重挫,從散戶到專業投資人,都急著找尋買進殺出的訊號,就是現在,輪到知識進場!把握時機讓自己升級,別放過反彈的機會!
Thumbnail
※ 什麼是Web API API 就是後端開出來讓前端來用的介面,讓前端與後端可以溝通。 API流程: 終端使用者用任何一種裝置進入瀏覽器。 瀏覽器透過 API 向後端發出請求,請求查詢或修改資料。 後端透過 API 收到前端的請求後,取得資料並回應給前端。 前端渲染畫面,終端使用者
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
在API介接中使用x-www-form-urlencoded格式時,可能會遇到一些踩坑的情況,本文分享了作者在這方面遇到的問題和解決方法。
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
Thumbnail
先前幾篇筆記介紹了網路請求,瀏覽器儲存資料的方式,那麼實務上,前端最常需要發送網路請求的時候,就是透過呼叫 API,去向後端工程師發送/請求資料,所以今天來記錄什麼是 API吧!
Thumbnail
Request內容 package main import ( "fmt" "log" "net/http" "strings" ) func request(w http.ResponseWriter, r *http.Request) { //這些資訊是輸出到伺服器端的列印訊息
Thumbnail
Accept:用戶端能夠接收的內容類型。 Accept: text/plain, text/html Accept-Charset:瀏覽器可以接受的字元編碼集。 Accept-Charset: utf8 Accept-Encoding:指定瀏覽器可以支援的web伺服器返回內容壓縮編碼