码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前端暴露后端接口及传参方式总结~


    文章目录

    • 一、获取列表数据
    • 二、不需要传参--获取列表数据
    • 三、后端需要 1 个参数
    • 四、后端需要 2 个参数
    • 五、后端需要 多个 参数
    • 六、后端需要 1 个 List 列表
    • 七、前端给后端接口传参,处理对象中包含数组的格式(两种方式,看后端需要哪种)

    注:params: params是 问号拼接参数

    一、获取列表数据

    传参时需要问一下后端需要给他传Swagger中的哪些参数。

    export const getList = params => {
        return request({
            url: '/api/xxxx/xxx/userList',
            method: 'GET',
            params: params
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    二、不需要传参–获取列表数据

    1. Swagger在这里插入图片描述
    2. 前端 ⇒ 暴露接口

    export const getProjectList = () => {
        return request({
            url: '/api/xxxx/xxx/xx/x',
            method: 'GET',
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 前端 ⇒ 传参

    getList() {
        getProjectList()
        .then((res) => {
             this.projectList = res;
         })
        .catch((error) => {
             console.log(error);
         });
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    三、后端需要 1 个参数

    1. Swagger在这里插入图片描述
    2. 前端 ⇒ 暴露接口

    export const pushAll = itemId => {
        return request({
            url: `/api/xxxx/xxx/xx/${itemId}`,
            method: 'POST',
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 前端 ⇒ 传参

    let params = this.editId,
    pushAll(params) // 直接传 参数
    
    • 1
    • 2

    四、后端需要 2 个参数

    1. Swagger
    在这里插入图片描述
    2. 前端 ⇒ 暴露接口

    // 方式一
    export const pushByItemId = params => {
        return request({
            url: `/api/xxxx/xxx/${params.itemId}/${params.id}`,
            method: 'POST',
        })
    }
    // 方式二
    export const pushByItemId = ({id, itemId}) => {
        return request({
            url: `/api/xxxx/xxx/${itemId}/${id}`,
            method: 'POST',
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3. 前端 ⇒ 传参

    let params = {
          itemId: this.editId,
          id: row.id
    }
    
    • 1
    • 2
    • 3
    • 4

    五、后端需要 多个 参数

    1. Swagger
    在这里插入图片描述
    2. 前端 ⇒ 暴露接口

    export const signInSubmit = ({id, itemId, letter}) => {
        return request({
            url: `/api/volunteer/signIn/${itemId}/${id}`,
            method: 'POST',
            params: {letter}
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3. 前端 ⇒ 传参
    这里写的 主要是想记录一下 点击事件调用接口弹框 的通用模板

    // 因为这个这里的三个参数都是当前行的,所以直接把参数传给点击事件,然后传给接口。
    registerAction(id, itemId, letter) {
        this.$confirm("是否确定?", "弹框title", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
        }).then(() => {
        signInSubmit({id, itemId, letter})  //接口~ 注意  是一个对象!!
          .then(() => {
             this.$message.success("操作成功");
             this.handleChange();
           })
          .catch(err => {
             console.log(err);
           })
        }).catch(() => {
           this.$message("已取消操作");          
          });
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    六、后端需要 1 个 List 列表

    1. Swagger
    在这里插入图片描述
    2. 前端 ⇒ 暴露接口

    export const pushBySelectList = data => {
        return request({
            url: '/api/xxxx/xxx/xx/x',
            method: 'POST',
            data: data   // 2. 请求体传参
        })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3. 前端 ⇒ 传参

    let params = this.selectList.map(item => {  // 1. 这里需要一个列表
           return {         //然后这里返回列表里需要的 参数对象
              id: item.id,
              itemId: this.editId
           }
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    七、前端给后端接口传参,处理对象中包含数组的格式(两种方式,看后端需要哪种)

    data请求体传参不需要加,问号拼在后面需要加下面的、

    // 方式1:
    paramsSerializer: params => {
          return encodeURI(qs.stringify(params, { allowDots: true, encode: false }))
    }
    
    • 1
    • 2
    • 3
    • 4
    // 方式2:
    paramsSerializer: params => {
         return qs.stringify(params, { indices: false })
    }
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    K8s集群 实现集群业务是否对外暴露的控制 (多LB实施方案)
    [ruby on rails] postgres sql explain 优化
    Confluence升级方案
    java毕业设计传统文化网站mybatis+源码+调试部署+系统+数据库+lw
    状态压缩学习笔记
    bp神经网络预测模型优点,bp人工神经网络模型
    【C++】类和对象的基础概念问题
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java扶贫产品和扶贫物资捐赠系统r32rk
    Scala第五章节
    如何用python生成动态随机验证码图片
  • 原文地址:https://blog.csdn.net/weixin_44020255/article/details/126484145
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号