API 路由與遷移
目的
這裡整理新舊專案 API path、endpoint、controller/action 的查詢與搬移流程。
這不是單純設定來源,而是 endpoint migration 的工作流程入口。當你要查一個 URL 會進哪支程式、要新增 legacy-compatible endpoint、或發現 new API 有 method 但 path 打不到時,先看這裡。
目前文件
| 文件 | 說明 |
|---|---|
| pro360_api_82 API Migration | 專案 endpoint inventory、detail doc、search_add、quote_request_copy 與 Postman 驗證資料 |
| recently_updated_apis | 跨 API 的近期搬移、實測與切換驗證摘要 |
| new_api_routing | pro360_api_82 的 RouterV3、Mapping / Origin / File fallback 規則 |
| legacy_cakephp_routing | get-lancer-php56 的 CakePHP routes、cms_routes、controller/action convention |
| endpoint_migration_checklist | 從 legacy endpoint 搬到 new API 時的查詢、實作、測試、文件 checklist |
| api_response_contract | legacy API migration 時 response shape 必須完全對齊,避免自行新增 error:0 等欄位 |
| cors_header_ownership | CORS / HTTP header 在 PHP、Nginx、CDN 間的唯一 owner 規則與排查順序 |
| 案例/provider_accept_narrow_match | 以 /quote_bids/provider_accept_narrow_match/<quote_bid_id>.json 示範完整 route trace |
什麼時候看這裡
- 要查某個 URL 對應哪個 endpoint / controller action。
- 要搬移 legacy API。
- 要新增 legacy-compatible path。
Endpoint/V1/*.php已有 method,但實際 URL 打不到。- path 參數、
rawParams、named params、.jsonextension 行為不確定。 - 要判斷需不需要補
RouterRule/Mapping.php。
高階查詢順序
legacy URL
-> legacy CakePHP controller/action
-> legacy model/domain method
-> new API Mapping.php
-> new API Origin/File fallback
-> Endpoint/V1 action
-> rawParams / named params / body
-> auth/session/security hash
-> tests / docs和其他文件的關係
維護原則
- route 規則放這裡,不要散落在各 API migration detail。
- 可重用的 business rule 放
業務流程/;單一專案的搬移證據放 pro360_api_82 API Migration。 Mapping.php新增相容 path 時,要同步更新相關 migration 文件或 checklist 結論。- 不要把 temporary access log 統計放進長期 route 文件;可放在專案 migration detail 或案例文件。