首页 新闻 搜索 专区 学院

使用axios时,如何更优雅的填充restful风格url参数

0
悬赏园豆:10 [待解决问题]

比如说有一个接口api/class/1/student/2,api/class/{classId}/student/{studentId},这样的,用axios如何优雅的传入那两个id呢?还是说只能通过字符串拼接的方式?

从前的倒影的主页 从前的倒影 | 初学一级 | 园豆:27
提问于:2021-01-08 09:56
< >
分享
所有回答(3)
0

js es6不是有模板字符串吗,用``符号包裹就可以在里面写变量了,比如`api/class/${classId}/student/${studentId}`这样就把变量传进去了

Mr_Wink | 园豆:202 (菜鸟二级) | 2021-01-08 10:28

这个也算是url拼接了,我想问的是能不能用类似data:{},param:{}这种方式,实在不行你这种方案确实是最佳的选择了

支持(0) 反对(0) 从前的倒影 | 园豆:27 (初学一级) | 2021-01-08 10:52

@helloworldworldhello: 那就只有这种形式了

axios.get('demo/url', {
    params: {
        id: 123,
        name: 'Henry',
    },
   timeout: 1000,
  ...//其他相关配置
})```
其他就不清楚了
支持(0) 反对(0) Mr_Wink | 园豆:202 (菜鸟二级) | 2021-01-08 11:03

@Mr_Wink: 这种最终转成url是demo/url?id=123&name=456,这种形式,后端api不支持这种

支持(0) 反对(0) 从前的倒影 | 园豆:27 (初学一级) | 2021-01-08 11:08
0

接口规范:https://www.cnblogs.com/pythonywy/archive/2004/01/13/11448845.html
你这个应该 post:api/student
data :{
classId : 1
studentId :1
}

小小咸鱼YwY | 园豆:2918 (老鸟四级) | 2021-01-08 11:30

post代表着新增操作了

支持(0) 反对(0) 从前的倒影 | 园豆:27 (初学一级) | 2021-01-08 14:49

@helloworldworldhello: 大哥别那么死板好不好,实践开发都post多,这种带id的不建议用get,你真要用get,data就是params就好了

支持(0) 反对(0) 小小咸鱼YwY | 园豆:2918 (老鸟四级) | 2021-01-08 16:26
0

你封装的方法中做字符串替换不好吗,规定一个特定的字符做替换

君主-bye | 园豆:106 (初学一级) | 2021-01-08 18:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册