Files
KCGL/inventory-backend/app/api
yueli 29fc00a818 fix(my-requests): 修正 withdraw_endpoint 路径前缀导致撤回 404
现象
----
在「我的申请单」页面点撤回,前端控制台报:
  POST /api/api/v1/outbound/request/351/withdraw 404

根因
----
aggregate 端点在每条记录上回传 withdraw_endpoint,但拼接时多写了 /api:

  返回的:     /api/v1/outbound/request/351/withdraw
  axios baseURL: /api
  实际请求:   /api + /api/v1/... = /api/api/v1/...   → 404

后端路由本身是对的(/api/v1/outbound/request/<id>/withdraw 已正确注册),
问题纯在前端拼接。其它 API 封装的正确写法是只传 baseURL 之后的部分
(如 url: '/v1/outbound/my-requests'),本处是唯一破坏该约定的地方。

修复
----
返回 /v1/... 而非 /api/v1/...,并加注释说明约定。
借库项同时从 close 改为 withdraw(配合上一提交的申请人端点)。

验证方式
--------
按**前端真实的拼接方式**验证('/api' + endpoint),而非直接调后端路由:
  [outbound] /v1/outbound/request/381/withdraw            → 200
  [borrow  ] /v1/transactions/borrow/request/44/withdraw  → 200
  [scrap   ] /v1/scrap/request/5/withdraw                 → 200

教训:上一轮用 test_client 直接调后端路由验证,绕过了 axios 的 baseURL
拼接,所以后端测试全绿、前端一跑就 404。验证「前端能否调通」必须模拟
前端的请求方式。
2026-09-10 15:47:02 +08:00
..
2026-01-26 13:47:53 +08:00
2026-01-26 13:47:53 +08:00