Просмотр исходного кода

fix(web): 前端API统一改用POST并对齐后端路由

- content-dimension-threshold: list GET->POST; delete DELETE /{id}->POST /delete?id=(后端@PostMapping("/delete")+@RequestParam)
- guidePackage: updatePackage PUT /{id}->POST /{id}/update; updatePackageItem PUT->POST; deletePackageItem DELETE->POST /items/{itemId}/delete
- guide: updatePackage PUT /{id}->POST /{id}/update; updatePackageStatus PUT+data->POST+params(后端@RequestParam)
- recommendation: deleteRecommendationRule POST /delete+body->POST /delete/{id}(后端@PathVariable); getRecommendationRuleById GET->POST
- 同步guide/guidePackage测试断言; 修复既有测试mock路径bug(getAllGuides/getAllPackages多/list后缀)
Xiaogang Liao 1 неделя назад
Родитель
Сommit
e334571ece

+ 6 - 6
cfc-web/src/__tests__/api/guide.test.js

@@ -95,7 +95,7 @@ describe('guide API', () => {
   })
 
   test('getAllGuides sends POST', async () => {
-    mock.onPost('/api/admin/guide/guides/list').reply(200, { code: 200, data: [] })
+    mock.onPost('/api/admin/guide/guides').reply(200, { code: 200, data: [] })
     const res = await getAllGuides()
     expect(res.code).toBe(200)
   })
@@ -107,7 +107,7 @@ describe('guide API', () => {
   })
 
   test('getAllPackages sends POST', async () => {
-    mock.onPost('/api/admin/guide/packages/list').reply(200, { code: 200, data: [] })
+    mock.onPost('/api/admin/guide/packages').reply(200, { code: 200, data: [] })
     const res = await getAllPackages()
     expect(res.code).toBe(200)
   })
@@ -118,14 +118,14 @@ describe('guide API', () => {
     expect(res.data.id).toBe(1)
   })
 
-  test('updatePackage sends PUT request', async () => {
-    mock.onPut('/api/admin/guide/packages/1').reply(200, { code: 200, data: true })
+  test('updatePackage sends POST request', async () => {
+    mock.onPost('/api/admin/guide/packages/1/update').reply(200, { code: 200, data: true })
     const res = await updatePackage(1, { name: '更新' })
     expect(res.code).toBe(200)
   })
 
-  test('updatePackageStatus sends PUT with status', async () => {
-    mock.onPut('/api/admin/guide/packages/1/status').reply(200, { code: 200, data: true })
+  test('updatePackageStatus sends POST with status', async () => {
+    mock.onPost('/api/admin/guide/packages/1/status').reply(200, { code: 200, data: true })
     const res = await updatePackageStatus(1, 'PUBLISHED')
     expect(res.code).toBe(200)
   })

+ 6 - 6
cfc-web/src/__tests__/api/guidePackage.test.js

@@ -48,8 +48,8 @@ describe('guidePackage API', () => {
     expect(res.data.id).toBe(1)
   })
 
-  test('updatePackage sends PUT with id and data', async () => {
-    mock.onPut('/api/packages/1').reply(200, { code: 200, data: true })
+  test('updatePackage sends POST with id and data', async () => {
+    mock.onPost('/api/packages/1/update').reply(200, { code: 200, data: true })
     const res = await updatePackage(1, { name: '新名称' })
     expect(res.code).toBe(200)
   })
@@ -72,14 +72,14 @@ describe('guidePackage API', () => {
     expect(res.data.id).toBe(1)
   })
 
-  test('updatePackageItem sends PUT', async () => {
-    mock.onPut('/api/packages/items/1').reply(200, { code: 200, data: true })
+  test('updatePackageItem sends POST', async () => {
+    mock.onPost('/api/packages/items/1').reply(200, { code: 200, data: true })
     const res = await updatePackageItem(1, { points: 20 })
     expect(res.code).toBe(200)
   })
 
-  test('deletePackageItem sends DELETE', async () => {
-    mock.onDelete('/api/packages/items/1').reply(200, { code: 200, data: true })
+  test('deletePackageItem sends POST', async () => {
+    mock.onPost('/api/packages/items/1/delete').reply(200, { code: 200, data: true })
     const res = await deletePackageItem(1)
     expect(res.code).toBe(200)
   })

+ 6 - 5
cfc-web/src/api/content-dimension-threshold.js

@@ -2,15 +2,15 @@ import request from '@/utils/request'
 
 // 内容维度阈值显隐配置 API
 // 契约(后端已实现,勿改):
-// - GET    /api/admin/content-dimension-threshold/list?contentType=PRODUCT&contentId=123
+// - POST   /api/admin/content-dimension-threshold/list?contentType=PRODUCT&contentId=123
 // - POST   /api/admin/content-dimension-threshold/batch-save
-// - DELETE /api/admin/content-dimension-threshold/{id}
+// - POST   /api/admin/content-dimension-threshold/delete?id=xxx
 
 // 查询某内容项的维度阈值列表(含 id)
 export function getContentDimensionThresholdList(params) {
   return request({
     url: '/api/admin/content-dimension-threshold/list',
-    method: 'get',
+    method: 'post',
     params
   })
 }
@@ -27,8 +27,9 @@ export function batchSaveContentDimensionThreshold(data) {
 // 单条删除
 export function deleteContentDimensionThreshold(id) {
   return request({
-    url: `/api/admin/content-dimension-threshold/${id}`,
-    method: 'delete'
+    url: '/api/admin/content-dimension-threshold/delete',
+    method: 'post',
+    params: { id }
   })
 }
 

+ 4 - 4
cfc-web/src/api/guide.js

@@ -100,8 +100,8 @@ export function createPackage(data) {
 
 export function updatePackage(id, data) {
   return request({
-    url: `/api/admin/guide/packages/${id}`,
-    method: 'put',
+    url: `/api/admin/guide/packages/${id}/update`,
+    method: 'post',
     data
   })
 }
@@ -109,8 +109,8 @@ export function updatePackage(id, data) {
 export function updatePackageStatus(id, status) {
   return request({
     url: `/api/admin/guide/packages/${id}/status`,
-    method: 'put',
-    data: { status }
+    method: 'post',
+    params: { status }
   })
 }
 

+ 5 - 5
cfc-web/src/api/guidePackage.js

@@ -37,8 +37,8 @@ export function createPackage(data) {
 // 更新任务模板
 export function updatePackage(id, data) {
   return request({
-    url: `/api/packages/${id}`,
-    method: 'put',
+    url: `/api/packages/${id}/update`,
+    method: 'post',
     data
   })
 }
@@ -73,7 +73,7 @@ export function addPackageItem(packageId, data) {
 export function updatePackageItem(itemId, data) {
   return request({
     url: `/api/packages/items/${itemId}`,
-    method: 'put',
+    method: 'post',
     data
   })
 }
@@ -81,7 +81,7 @@ export function updatePackageItem(itemId, data) {
 // 删除任务项
 export function deletePackageItem(itemId) {
   return request({
-    url: `/api/packages/items/${itemId}`,
-    method: 'delete'
+    url: `/api/packages/items/${itemId}/delete`,
+    method: 'post'
   })
 }

+ 2 - 2
cfc-web/src/api/recommendation.js

@@ -15,7 +15,7 @@ export function updateRecommendationRule(data) {
 }
 
 export function deleteRecommendationRule(data) {
-  return request({ url: '/api/admin/recommendation-rules/delete', method: 'post', data })
+  return request({ url: `/api/admin/recommendation-rules/delete/${data.id}`, method: 'post' })
 }
 
 export function batchToggleRecommendationRule(data) {
@@ -23,5 +23,5 @@ export function batchToggleRecommendationRule(data) {
 }
 
 export function getRecommendationRuleById(id) {
-  return request({ url: `/api/admin/recommendation-rules/${id}`, method: 'get' })
+  return request({ url: `/api/admin/recommendation-rules/${id}`, method: 'post' })
 }