D15 - 第二階段驗收:盤點需求,為前端整合鋪路

更新 發佈閱讀 9 分鐘

哈囉,大家好!不知不覺,我們的 30 天鐵人挑戰已經過了一半。這段期間,我們一起從零開始,建立了個人財務管理系統的後端,從資料庫設計、模型建立、路由設定到控制器實作,甚至進行了單元測試。

現在,是時候停下腳步,來一場 第二階段的驗收。

在開始前,我想分享一個個人經驗:以前我在開發專案時,總是急於向前衝,結果到最後才發現有許多細節沒處理好,導致後續的整合和維護變得困難重重。這次,我們不要重蹈覆轍,讓我們一起盤點已完成的功能,確保接下來的 Nuxt 前端串接能夠順利進行。

一、為什麼需要進行中期驗收?

在軟體開發中,定期的驗收和回顧是非常重要的。透過驗收,我們可以:

  • 確認進度:確保已完成的功能符合最初的需求。
  • 發現問題:及早發現並修正潛在的錯誤或遺漏。
  • 調整計畫:根據現狀調整後續的開發方向和優先級。

就像爬山一樣,爬到一半時停下來看看地圖,確認一下方向,補充一下能量,再繼續前進。

二、盤點需求與實際達成內容

首先,我們需要回顧一下最初列出的需求,然後檢查我們實際完成了哪些。

1. 需求清單

  • 使用者管理:
    • 註冊新使用者
    • 使用者登入驗證
    • 更新使用者資料
    • 刪除使用者帳號
  • 銀行帳戶管理:
    • 新增銀行帳戶
    • 編輯銀行帳戶資訊
    • 刪除銀行帳戶
    • 列出使用者的所有銀行帳戶
  • 分類管理:
    • 新增收入/支出分類
    • 編輯分類名稱和類型
    • 刪除分類
    • 列出所有分類
  • 交易紀錄管理:
    • 新增交易紀錄(收入/支出)
    • 編輯交易紀錄
    • 刪除交易紀錄
    • 查詢交易紀錄
    • 根據日期範圍查詢交易紀錄
  • 報表功能:
    • 每月收入/支出統計
    • 按分類統計收入/支出
    • 生成圖表(未實作,計畫在前端完成)

2. 實際完成的內容

經過前面的開發,我們已經:

  • 建立了 使用者、銀行帳戶、分類、交易紀錄 的資料表和模型。
  • 實作了上述資源的 CRUD API。
  • 完成了基本的 資料驗證 和 錯誤處理。
  • 撰寫了部分的 單元測試,確保關鍵功能的正確性。

3. 尚未完成的部分

  • 使用者登入驗證:目前尚未實作身份驗證機制(如 JWT 或 Laravel Sanctum)。
  • 報表功能的 API:報表的生成尚未在後端提供 API。
  • 進階查詢:如根據日期範圍或分類篩選交易紀錄的功能需要加強。
  • 測試覆蓋率:單元測試還不夠全面,需要補充更多測試案例。

三、驗收 API 功能

為了確保後續的前端開發能夠順利進行,我們需要逐一測試每個 API,確認其功能和輸出符合預期。

1. 使用 Postman 測試 API

Postman 是一個強大的 API 測試工具,以下是我常用的驗收方法:

  • 建立測試環境:在 Postman 中設定環境變數,如 API 伺服器的 URL。
  • 撰寫測試腳本:為每個 API 請求建立對應的測試案例。
  • 檢查回應格式:確認 API 回應的 JSON 結構是否符合預期。
  • 驗證狀態碼:例如,創建成功應回傳 201,刪除成功應回傳 204。

2. 測試各個 API

(1)使用者 API

  • GET /api/users:應回傳使用者列表。
  • POST /api/users:提供必要的資料,應成功創建新使用者。
  • GET /api/users/{id}:應回傳指定使用者的資料。
  • PUT /api/users/{id}:更新使用者資料,確認變更是否生效。
  • DELETE /api/users/{id}:刪除使用者,確認資料庫中已無此使用者。

(2)銀行帳戶 API

  • GET /api/bank-accounts:應回傳銀行帳戶列表。
  • POST /api/bank-accounts:創建新帳戶,檢查必填欄位和驗證規則。
  • GET /api/bank-accounts/{id}:取得特定帳戶資訊。
  • PUT /api/bank-accounts/{id}:更新帳戶資訊,確認變更。
  • DELETE /api/bank-accounts/{id}:刪除帳戶,確認是否同時刪除了相關的交易紀錄(若有設定)。

(3)分類 API

  • GET /api/categories:應回傳分類列表。
  • POST /api/categories:新增分類,測試收入和支出類型。
  • GET /api/categories/{id}:取得分類詳情。
  • PUT /api/categories/{id}:更新分類名稱或類型。
  • DELETE /api/categories/{id}:刪除分類,確認系統處理方式(如是否影響相關交易紀錄)。

(4)交易紀錄 API

  • GET /api/transactions:應回傳所有交易紀錄。
  • POST /api/transactions:新增交易紀錄,測試不同類型、金額和日期。
  • GET /api/transactions/{id}:取得交易詳情。
  • PUT /api/transactions/{id}:更新交易資訊。
  • DELETE /api/transactions/{id}:刪除交易,確認資料庫更新。

3. 檢查資料驗證與錯誤處理

  • 輸入驗證:嘗試傳遞錯誤或缺少的資料,確認系統是否返回適當的錯誤訊息。
  • 權限控制:目前尚未實作,但需要考慮未來加入身份驗證後的權限驗證。
  • 錯誤回應格式:確保錯誤訊息統一且易於理解,方便前端處理。

4. 確認 API 文件

雖然我們是獨立開發,但良好的 API 文件對於自己和他人都是一種負責任的態度。建議使用工具如 Swagger 或 ApiDoc 生成 API 文件,記錄:

  • API 路徑與方法:如 GET /api/transactions。
  • 請求參數:包括必要的和可選的參數,類型和說明。
  • 回應格式:成功和錯誤的回應範例。
  • 錯誤碼:常見的錯誤碼及其意義。

四、為前端整合做好準備

在確認後端 API 功能正常後,我們需要考慮如何讓前端開發更順利。

1. 統一回應格式

  • 成功回應:統一使用固定的格式,例如:
{
"status": "success",
"data": { ... }
}
  • 錯誤回應:提供一致的錯誤結構,方便前端解析:
{
"status": "error",
"message": "錯誤訊息",
"errors": { ... }
}

2. CORS 設定

為了讓前端(尤其是使用不同網域時)能夠順利訪問 API,需要在後端設定 CORS(跨來源資源共享)。

在 app/Http/Kernel.php 中,確認已經加入了 \Fruitcake\Cors\HandleCors::class。

3. 身份驗證與安全性

雖然我們還沒有實作身份驗證,但在進行前端整合前,需要決定:

  • 使用哪種身份驗證方式:如 JWT、Laravel Sanctum 等。
  • 保護哪些路由:哪些 API 需要登入後才能訪問。
  • 前後端如何傳遞身份驗證資訊:如使用 HTTP Header 傳遞 Token。

五、未來的調整與計畫

經過這次驗收,我們發現還有一些需要改進的地方:

  • 完善單元測試:增加測試覆蓋率,特別是關鍵功能和邊界情況。
  • 實作身份驗證:保護使用者資料的安全性。
  • 優化 API:考慮性能和可擴展性,如加入分頁、快取等。
  • 準備前端開發環境:設定 Nuxt 專案,並與後端 API 整合。

六、個人經驗分享

走到這裡,我們已經完成了後端開發的主要部分。回想起來,每次在專案中進行這樣的中期驗收,總能讓我發現許多之前忽略的細節。這不僅有助於提升專案品質,還能節省後續整合時的時間和精力。

我建議大家在開發過程中,多花點時間進行這樣的盤點和檢查。雖然看似耗時,但長遠來看,絕對是划算的投資。

小結

今天,我們一起進行了第二階段的驗收,盤點了需求與實際完成的內容,並測試了各個 API 的功能。這為我們接下來的前端整合鋪平了道路。


在接下來的日子裡,我們將:

  • 實作身份驗證機制,確保使用者資料安全。
  • 開始前端開發,使用 Nuxt.js 建立使用者介面。
  • 持續優化,根據測試和反饋進行改進。
    希望大家能夠從這次驗收中學到一些實用的方法和技巧,應用到自己的專案中。讓我們繼續保持熱情,迎接下半程的挑戰!
留言
avatar-img
詹姆士的軟體易開罐
33會員
93內容數
這是一系列以軟體開發為主題的輕鬆分享,內容涵蓋了技術選擇、開發經驗、實戰應用等多方面的議題。無論是如何在眾多框架中做出選擇,還是如何應對技術轉移的挑戰,這裡有幽默、有趣的對話風格,將複雜的技術問題轉化為易懂的故事。
2024/12/22
這是我第一次參加 iThome 鐵人賽,原本並沒有打算參加,但在整理專案時,我忽然想把屬於自己的內容公開分享,而不僅僅藏在雲端裡。於是,我獨自規劃、撰寫並完成了一個完整的開發系列文章。在這段過程中,我體會到獨自開發的挑戰與成就,並希望能將這些經驗分享給每一位正在努力前行的你。
Thumbnail
2024/12/22
這是我第一次參加 iThome 鐵人賽,原本並沒有打算參加,但在整理專案時,我忽然想把屬於自己的內容公開分享,而不僅僅藏在雲端裡。於是,我獨自規劃、撰寫並完成了一個完整的開發系列文章。在這段過程中,我體會到獨自開發的挑戰與成就,並希望能將這些經驗分享給每一位正在努力前行的你。
Thumbnail
2024/12/15
這篇文章介紹建立分類列表頁面以及新增和編輯功能。文中詳細說明瞭頁面結構、資料取得、錯誤處理等重要步驟,並強調了共用元件和資料驗證的一致性。通過這次開發,讀者將獲得關於如何在Nuxt中操作動態路由的深入理解,同時提高使用者體驗。希望本篇能幫助讀者順利完成相關功能建置。
Thumbnail
2024/12/15
這篇文章介紹建立分類列表頁面以及新增和編輯功能。文中詳細說明瞭頁面結構、資料取得、錯誤處理等重要步驟,並強調了共用元件和資料驗證的一致性。通過這次開發,讀者將獲得關於如何在Nuxt中操作動態路由的深入理解,同時提高使用者體驗。希望本篇能幫助讀者順利完成相關功能建置。
Thumbnail
2024/12/14
哈囉,大家好!在前面的文章中,我們已經規劃了前端介面,並盤點了所需的頁面與功能。 現在,是時候開始動手實作了。今天,我們將專注於 銀行帳戶列表頁面(Bank Accounts)以及 新增/編輯銀行帳戶頁面(Add/Edit Bank Account)的開發。 透過這次的實作,我們將學習如何在 N
Thumbnail
2024/12/14
哈囉,大家好!在前面的文章中,我們已經規劃了前端介面,並盤點了所需的頁面與功能。 現在,是時候開始動手實作了。今天,我們將專注於 銀行帳戶列表頁面(Bank Accounts)以及 新增/編輯銀行帳戶頁面(Add/Edit Bank Account)的開發。 透過這次的實作,我們將學習如何在 N
Thumbnail
看更多
你可能也想看
Thumbnail
本文介紹了如何在 Laravel 中實作控制器,為個人財務管理系統建立完整的 CRUD API。我們實現了資料的建立、查詢、更新和刪除,並使用資料驗證提升應用安全性。未來將進行程式碼重構及 API 測試,持續優化應用程式。
Thumbnail
本文介紹了如何在 Laravel 中實作控制器,為個人財務管理系統建立完整的 CRUD API。我們實現了資料的建立、查詢、更新和刪除,並使用資料驗證提升應用安全性。未來將進行程式碼重構及 API 測試,持續優化應用程式。
Thumbnail
1.讓客戶確實知道你做了哪些事 2.幫助理順你的專案工作 3.保持在一定的工作節奏 4.建立你的專業形象 5.收款時讓客戶無法推託 6.形成歷史知識幫助你檢討過往案件的成功與失敗
Thumbnail
1.讓客戶確實知道你做了哪些事 2.幫助理順你的專案工作 3.保持在一定的工作節奏 4.建立你的專業形象 5.收款時讓客戶無法推託 6.形成歷史知識幫助你檢討過往案件的成功與失敗
Thumbnail
軟體開發流程涵蓋需求分析、設計、開發、測試與部署。版本控制(如 Git)幫助管理代碼變更並支持團隊協作。開發中,使用 Git 分支開發新功能,並透過 Pull Request 進行代碼審查。持續集成(CI)與持續部署(CD)自動化測試與部署,提升開發效率和代碼品質,確保高品質交付。
Thumbnail
軟體開發流程涵蓋需求分析、設計、開發、測試與部署。版本控制(如 Git)幫助管理代碼變更並支持團隊協作。開發中,使用 Git 分支開發新功能,並透過 Pull Request 進行代碼審查。持續集成(CI)與持續部署(CD)自動化測試與部署,提升開發效率和代碼品質,確保高品質交付。
Thumbnail
AUD重點 以下整理各章節一定要記得的地方,僅為個人念書心得,適合已經唸過一次課本或考前複習者快速複習重點、針對考點準備,並非完整的觀念解說。
Thumbnail
AUD重點 以下整理各章節一定要記得的地方,僅為個人念書心得,適合已經唸過一次課本或考前複習者快速複習重點、針對考點準備,並非完整的觀念解說。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這篇文章深入探討了開發個人財務管理系統的規劃過程,包括需求確認、環境建置及技術選型等關鍵步驟。作者強調在開發前進行充分的規劃與設計是成功的基礎,並提供了具體的工具與技術選擇,如PHP、Laravel和Docker。通過清晰的步驟指引,文章幫助讀者掌握系統開發的核心要素,確保順利推進專案。
Thumbnail
這篇文章深入探討了開發個人財務管理系統的規劃過程,包括需求確認、環境建置及技術選型等關鍵步驟。作者強調在開發前進行充分的規劃與設計是成功的基礎,並提供了具體的工具與技術選擇,如PHP、Laravel和Docker。通過清晰的步驟指引,文章幫助讀者掌握系統開發的核心要素,確保順利推進專案。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這篇文章介紹了個人財務管理系統的資料庫設計,涵蓋使用者管理、銀行帳戶管理、財務紀錄和分類管理的核心功能。系統需求包括註冊登入、帳戶管理、財務記錄分類和報表生成。設計了四個資料表,並詳細說明其欄位設計和建表語法。透過清晰的表關聯,確保資料一致性和系統擴展性,為後續的 Laravel 開發打下基礎。
Thumbnail
這篇文章介紹了個人財務管理系統的資料庫設計,涵蓋使用者管理、銀行帳戶管理、財務紀錄和分類管理的核心功能。系統需求包括註冊登入、帳戶管理、財務記錄分類和報表生成。設計了四個資料表,並詳細說明其欄位設計和建表語法。透過清晰的表關聯,確保資料一致性和系統擴展性,為後續的 Laravel 開發打下基礎。
Thumbnail
如何打造屬於你的專屬理財系統 不少人都希望擁有健康的財務狀況,但理財不是單靠記帳或存錢就能完成的。真正高效的理財,需要一套專屬的系統來管理和優化你的財務。不論是月薪族、自由工作者,還是學生,只要掌握了這幾個步驟,都能打造屬於自己的理財系統,讓金錢為你服務! 1. 記帳:理財的起點 如果
Thumbnail
如何打造屬於你的專屬理財系統 不少人都希望擁有健康的財務狀況,但理財不是單靠記帳或存錢就能完成的。真正高效的理財,需要一套專屬的系統來管理和優化你的財務。不論是月薪族、自由工作者,還是學生,只要掌握了這幾個步驟,都能打造屬於自己的理財系統,讓金錢為你服務! 1. 記帳:理財的起點 如果
Thumbnail
要取得IATF 16949證書前,通常會估算要花費的人力管理銷費用,確定客戶是否可以提供自家產品直接或間接的使用在車載產品上的證明,最重要的是導入該管理系統取得證書後,是否能夠得到更多新的訂單。 1、前期導系統的顧問費用。 2、需要有專責人員負責管理系統及建立相關所需文件。
Thumbnail
要取得IATF 16949證書前,通常會估算要花費的人力管理銷費用,確定客戶是否可以提供自家產品直接或間接的使用在車載產品上的證明,最重要的是導入該管理系統取得證書後,是否能夠得到更多新的訂單。 1、前期導系統的顧問費用。 2、需要有專責人員負責管理系統及建立相關所需文件。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News