当前位置: 首页 > news >正文

@RequestParam使用场景

1. 语法正确性

@PostMapping("/delete")
public HttpJsonResponse deleteProjectConfig(@RequestParam("id") Long id) {// 逻辑实现
}

  • @RequestParam 可用于 POST 请求,它从 URL 参数 或 表单数据 中获取参数。
  • 前端可以通过以下两种方式传参:

    javascript

    // 方式一:URL 参数(query string)
    fetch('/delete?id=123', { method: 'POST' })// 方式二:表单数据(form data)
    const formData = new FormData();
    formData.append('id', '123');
    fetch('/delete', { method: 'POST', body: formData })
    

2. 潜在问题与建议

(1)幂等性问题

DELETE 请求应具有幂等性(多次调用效果相同),而 POST 不保证。
建议:如果是删除操作,优先使用 @DeleteMapping

@DeleteMapping("/{id}")  // 路径参数更符合 REST 风格
public HttpJsonResponse deleteProjectConfig(@PathVariable Long id) {// 逻辑实现
}
(2)参数校验

确保 id 不为空:

@PostMapping("/delete")
public HttpJsonResponse deleteProjectConfig(@RequestParam("id") @NotNull Long id) {// 逻辑实现
}
(3)安全风险

直接暴露 ID 可能存在安全风险(如 ID 枚举攻击)。
建议

  • 校验用户权限,确保用户只能删除自己的项目。
  • 使用更复杂的标识符(如 UUID)代替自增 ID。

3. 常见误区澄清

  • 误区 1:POST 请求只能用 @RequestBody
    ✅ 错误。@RequestParam 和 @PathVariable 均可用于 POST。

  • 误区 2:DELETE 请求不能带参数
    ✅ 错误。DELETE 可通过 URL 参数或路径变量传参(如 /delete/123)。

4. 最佳实践

根据 RESTful 规范,删除操作推荐使用 DELETE 方法 + 路径变量:

java

@DeleteMapping("/{id}")
@ApiOperation("删除战略周期")
@Secured(scopes = "", user = true)
public HttpJsonResponse deleteProjectConfig(@PathVariable Long id) {// 逻辑实现return HttpJsonResponse.success();
}

前端调用:

fetch('/delete/123', { method: 'DELETE' })

总结

你的代码在语法上没有问题,但从 REST 规范 和 最佳实践 角度,建议改用 @DeleteMapping + 路径变量的方式实现删除接口。

相关文章:

  • GUI图形化演示
  • 三轴云台之远程控制与通信技术篇
  • Element Plus 取消el-form-item点击触发组件,改为原生表单控件
  • ​​STC51系列单片机引脚分类与功能速查表(以STC89C52为例)​
  • java每日精进 5.15【分页实现】
  • 自学嵌入式 day 18 - 数据结构 1
  • Seata源码—3.全局事务注解扫描器的初始化一
  • Ansys Zemax | 在 MATLAB 或 Python 中使用 ZOS-API 进行光线追迹的批次处理
  • Web》》url 参数 # 、 ? 、@
  • element ui 级联列表Cascader懒加载数据回显的优雅解决方案
  • LocalDateTime类型的时间在前端页面不显示或者修改数据时因为LocalDateTime导致无法修改,解决方案
  • 会计要素+借贷分录+会计科目+账户,几个银行会计的重要概念
  • 【J2】乘法逆元
  • 将b[索引]中元素按照a中元素的值进行排序
  • C++核心编程--1 内存分区模型
  • python打卡day26
  • 如何在线免费压缩PDF文档?
  • 【MySQL】多表连接查询
  • 各个历史版本mysql/tomcat/Redis/Jdk/Apache/gitlab下载地址
  • 2024年9月电子学会等级考试五级第三题——整数分解
  • 广西百色“致富果”:高品质芒果直供香港,带动近五千户增收
  • 俄媒:俄乌代表团抵达谈判会场
  • 网易有道一季度净利润同比增长247%:有能力在今年实现更强劲的利润增长
  • 韩正会见美国景顺集团董事会主席瓦格纳
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导
  • 最高人民法院原副院长唐德华逝世,享年89岁