You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
02 · 端点风格全量统一(55 + 1 个端点)
- Status: resolved
- Type: task
- Blocked by: 01-ag-checklist
目标
crm-customer 全部 9 Controller 55 端点 + crm-rule CustomerReminderRuleController 1 端点,对齐 lead/opportunity 扁平动作动词风格。
改造规则
| 现状 | 改为 |
|---|---|
PUT /{id}(客户/联系人编辑) |
POST /edit?id= |
DELETE /{id}(删联系人、删团队成员) |
POST /delete?id=、POST /member/remove?id=&memberUserId= |
GET /{id}、/{id}/detail-head、/{id}/follow/page、/{taskId}/failures 等全部 PathVariable |
查询参数:/detail?id=、/detail-head?id=、/follow/page?id=、/failures?taskId= |
POST /{workspace}/page(workspace 路径变量) |
POST /page + workspace 参数(对称商机 viewType 参数形态) |
POST /{workspace}/board/summary、/{workspace}/board/cards |
POST /board/summary、POST /board/cards + workspace 参数 |
POST /(create 空路径) |
POST /create、POST /quick-create(已有的保持) |
PUT /api/rule/customer/reminder + @RequestBody JSON |
POST /save + form 绑定(消灭全仓唯一 ADR-0017 违规) |
POST /{taskId}/confirm、/{id}/focus、/{id}/unfocus、/{id}/star、/{id}/unstar、/{id}/assign、/{id}/assignable |
查询参数形态 |
波及面
- controller 层 mapping + 方法签名(PathVariable → Param DTO 字段);
- 全部相关单测(crm-customer 122 条基线)URL/参数断言;
- 冒烟脚本 URL(10 号票重跑时用新 URL);
- 商机侧跨模块走 Java service(HANDOFF 3.6),无 HTTP 连锁(R11)。
验收
grep -r "PathVariable\|@PutMapping\|@DeleteMapping\|@RequestBody" crm-customer/ crm-rule/(客户部分)零命中;- crm-customer + crm-rule
mvn test绿。
同步动作
.scratch/customer-module/API-SUMMARY.md 全端点 URL 表重写(收尾 11 号票统一校验)。
Answer
改造范围(8 Controller 26 端点重写 + 2 处注释同步):
| Controller | 改造 |
|---|---|
| CustomerContactController | POST ""→/create;PUT /{id}→POST /edit?id=;DELETE /{id}→POST /delete?id=;GET /{id}→GET /detail?id= |
| CustomerController | POST ""→/create;PUT /{id}→POST /edit?id=;GET /{id}→GET /detail?id=;GET /{customerId}/contacts→GET /contacts?customerId= |
| CustomerDetailController | /detail-head?id=、GET /member/list?id=、POST /member/add?id=、POST /member/remove?id=&memberUserId=(原 DELETE)、GET /opportunity/page?id=、GET /oplog/page?id=、POST /follow/add?id=、GET /follow/page?id= |
| CustomerFocusController | `POST /focus |
| CustomerImportController | POST /confirm?taskId=、GET /result?taskId=、GET /failures?taskId= |
| CustomerTransferController | GET /detail?id=、POST /assign?id=、GET /assignable?id= |
| CustomerWorkspaceController | 三端点去 {workspace} 路径段→POST /page、POST /board/summary、POST /board/cards,workspace 进 CustomerWorkspacePageParam 字段(对称商机 viewType-in-DTO 范式,服务签名不变) |
| CustomerReminderRuleController(crm-rule) | PUT @RequestBody→POST /save 表单绑定——全仓唯一 ADR-0017 违规消灭 |
Ownership / Ping / 其余既平端点本就合规,未动。测试为 service 层集成测试(直调 service,无 URL 断言),服务签名未动,零波及。
验收:
grep -r "PathVariable\|@PutMapping\|@DeleteMapping\|@RequestBody" crm-customer/ crm-rule/零命中(含 target 二进制,重建后干净);mvn test绿:crm-rule 146(对齐基线)、crm-customer 133(基线 122,随用例演进)、上游 crm-preference 16,BUILD SUCCESS;- BOM 扫描:改动文件无
EF BB BF。
同步动作:.scratch/customer-module/API-SUMMARY.md 全端点 URL 表重写按票 02 原注留待 11 号票收尾统一校验(R1 随修随改 + 终验对账)。冒烟脚本新 URL 归 10 号票重跑时更换。
边界备忘:workspace 现为表单参数,缺省/非法值由服务层按未知 workspace 拒绝(原路径段缺失=404,现=业务错误码);pool 看板拒绝归 03 号票。