fix(admin-agency): set-primary 用 PUT 不是 POST
这个提交包含在:
父节点
88dc320976
当前提交
4b86043a94
@ -0,0 +1,53 @@
|
||||
# fix(agency-admin): set-primary 接口必须用 PUT 不是 POST
|
||||
|
||||
**日期**: 2026-05-06 20:30
|
||||
**通知对象**: @mmg (前端)
|
||||
**关联 BUG 反馈**: 用户报 `http://localhost:9527/admin/travel-agency/2051985889785012226/set-primary` 报"请求方法不支持: POST"
|
||||
|
||||
---
|
||||
|
||||
## 一、根因(前端 BUG)
|
||||
|
||||
后端 `AdminTravelAgencyController.setPrimary` 在 `hl-order-service-v2/src/main/java/com/hulalv/agency/controller/admin/AdminTravelAgencyController.java:99-104` 是 **`@PutMapping`**:
|
||||
|
||||
```java
|
||||
@PutMapping("/{id}/set-primary")
|
||||
@ApiOperation("设为主体公司(SUPER_ADMIN)")
|
||||
public Result<Void> setPrimary(@PathVariable("id") Long id) {
|
||||
agencyService.setPrimary(id);
|
||||
return Result.success();
|
||||
}
|
||||
```
|
||||
|
||||
前端发的是 **`POST`** → 网关 `MethodArgumentNotSupportedException` 返"请求方法不支持: POST"。
|
||||
|
||||
## 二、为什么后端用 PUT
|
||||
|
||||
REST 语义 + 同模块其他**状态变更**接口都是 PUT(保持一致):
|
||||
- `PUT /admin/travel-agency/{id}/disable` 停用
|
||||
- `PUT /admin/travel-agency/{id}/enable` 启用
|
||||
- `PUT /admin/travel-agency/{id}/set-primary` 设为主体 ← 同一类语义
|
||||
|
||||
`POST /admin/travel-agency` 用于"新建公司"(资源创建),不在状态变更范畴。
|
||||
|
||||
## 三、前端修复
|
||||
|
||||
把"设为主体"按钮的 API 调用从:
|
||||
|
||||
```js
|
||||
http.post(`/admin/travel-agency/${id}/set-primary`)
|
||||
```
|
||||
|
||||
改为:
|
||||
|
||||
```js
|
||||
http.put(`/admin/travel-agency/${id}/set-primary`)
|
||||
```
|
||||
|
||||
## 四、为什么不改后端
|
||||
|
||||
如果改后端为 POST,会和 `disable` / `enable` 同模式风格冲突,REST 语义不一致 — 后续看代码的人会困惑"为啥状态变更有 PUT 又有 POST"。
|
||||
|
||||
## 五、不建工单
|
||||
|
||||
按规则前端 BUG 都走 changelog,不建 wx/HL 或 wx/hl-ui issue。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户