@RequestParam和@PathVariable的区别及其应用场景
https://www.cnblogs.com/youcong/p/9794215.html
@RequestParam和@PathVariable这两者之间区别不大,主要是请求的URL不一样
用@RequestParam请求接口时,URL是:http://www.test.com/user/getUserById?userId=1
用@PathVariable请求接口时,URL是:http://www.test.com/user/getUserById/2
(1)@PathVariable示例:
@GetMapping(value="getUserById/{userId}",produces="application/json;charset=utf-8")
public Object getUserById(@PathVariable String userId) {
JSONObject json = new JSONObject();
if(!StrUtil.isEmpty(userId)) {
User user = userService.getUserById(userId);
json.put("returnCode", "000000");
json.put("returnMsg", "success");
json.put("user", user);
}else {
json.put("returnCode", "111111");
json.put("returnMsg", "error");
}
return json;
}
主要应用场景是:不少应用为了实现RestFul的风格,采用@PathVariable这种方式。
例如CSDN:
当然了,有些时候也不是为了RestFul风格而采用这种方式,有些时候觉得?userId=1&&status=1等参数传递方式不是特别好看或者是看着不爽。
(2)@RequestParam示例:
@GetMapping(value="getUserById",produces="application/json;charset=utf-8")
public Object getUserById(@RequestParam String userId) {
JSONObject json = new JSONObject();
if(!StrUtil.isEmpty(userId)) {
User user = userService.getUserById(userId);
json.put("returnCode", "000000");
json.put("returnMsg", "success");
json.put("user", user);
}else {
json.put("returnCode", "111111");
json.put("returnMsg", "error");
}
return json;
}
应用场景:这种方式应用也非常广,像CSDN或者是博客园都在用它,这里就不贴图了,经常浏览博客和新闻都能看到。
最后,你如果问我哪种方式比较好,我的回答是,根据业务场景的需求决定使用其中一种或者是结合使用。不过它们都有一个共同点,那就是都是可见。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~