QuoteRequests Security Hash
對應 legacy QuoteRequests::security_hash() action;支援 GET /quote_requests/security_hash/{quote_request_id}.json、query param 與 body param 三種 input 形狀。
這支 API 的責任很小:依 quote_request_id 找出 request owner,建立一筆 QuoteRequest 用途的 security_hashes,回傳 hash。
快速結論
- 舊專案入口:
get-lancer-php56/app/Plugin/Quotes/Controller/QuoteRequestsController.php::security_hash($id) - 新專案入口:
Endpoint/V1/QuoteRequests.php::security_hash() - 認證:全域 API key
- 主要資料表:
quote_requests,security_hashes - 搬移狀態:已補上同路徑 action
- 2026-05-12 正式機
get-lancer_access.log*查詢:/quote_requests/security_hash.json0 筆;同批查詢未看到/quote_requests/...path 分布。
Request / Response
URL raw param
GET /quote_requests/security_hash/12345.json
X-PRO360-Rest-Api-Key: <api-key>成功 response:
{
"quote_request_id": "12345",
"hash": "4f3c0d7e0c2e6c6a5c9e9b2b5d8a1f20"
}Query param
GET /quote_requests/security_hash.json?quote_request_id=12345
X-PRO360-Rest-Api-Key: <api-key>成功 response 同上。
Body param
POST /quote_requests/security_hash.json
X-PRO360-Rest-Api-Key: <api-key>
Content-Type: application/json
{
"quote_request_id": 12345
}成功 response 同上。
找不到 request
[]舊流程
- 從 URL raw param 取得
id。 - 用
quote_requests.id = id讀取user_id。 - 找到 request 時新增
security_hashes。 - 回傳
quote_request_id與hash;quote_request_id沿用 legacy 型別,回字串。 - 找不到 request 時回傳空陣列。
資料表關聯
| 規則 | 資料表 | 欄位 |
|---|---|---|
| 找 request owner | quote_requests | id, user_id |
| 建立 hash | security_hashes | hash, model, foreign_id, user_id |
新專案實作
- 實作位置:
Endpoint/V1/QuoteRequests.php::security_hash() quote_request_id讀取順序:- body
quote_request_id - query
quote_request_id - URL raw param
rawParams[0]
- body
- 建立 hash:
SecurityHash::insert($userId, 'QuoteRequest', $quoteRequestId)
- Response:
quote_request_id回傳字串,與 legacy$result['quote_request_id'] = $id對齊
- 找不到 request 時維持舊行為,回傳空陣列。
驗證重點
- 有效
quote_request_id:- response 包含字串型別
quote_request_id - response 包含非空
hash security_hashes.model = 'QuoteRequest'security_hashes.foreign_id = quote_request_idsecurity_hashes.user_id = quote_requests.user_id
- response 包含字串型別
- 無效
quote_request_id:- response 為空陣列
- 不新增
security_hashes