提前下载安装以下工具,避免后续操作卡壳:
必须提前向对接方索要3份核心资料,缺一个都无法正常对接:接口文档、鉴权密钥、测试环境接口地址
先不要写代码,先用Postman验证接口是否可用,避免后续写了代码才发现是接口本身的问题,步骤如下:
Authorization: Bearer 你的测试鉴权密钥鉴权密钥绝对不能写在前端代码里,必须放在后端封装,避免密钥泄露被恶意调用,操作步骤如下:
第一步:新建项目文件夹,执行命令安装依赖:
```bash npm init -y npm install express axios cors ```第二步:新建index.js文件,复制以下完整可运行代码,按注释替换对应配置即可:
```js const express = require('express') const axios = require('axios') const cors = require('cors') const app = express() // 允许跨域请求 app.use(cors()) // 解析JSON格式的请求参数 app.use(express.json()) // 第三方接口统一配置,替换为对接方给的对应值 const thirdApiConfig = { baseURL: '替换为对接方给的测试环境地址', headers: { 'Authorization': 'Bearer 替换为你的测试鉴权密钥', 'Content-Type': 'application/json' }, timeout: 10000 // 10秒超时,避免第三方接口故障拖垮自身服务 } // 封装面向前端的业务接口,路径可按自身业务修改 app.post('/api/submit-order', async (req, res) => { try { // 入参合法性校验,必填项为空直接返回错误,不调用第三方接口 const { userId, orderAmount, orderNo } = req.body if(!userId || !orderAmount || !orderNo) { return res.status(400).send({code: 400, msg: '参数缺失,请检查后重试'}) } // 调用第三方接口,参数名按对接方文档要求转换 const thirdRes = await axios.post('/对接方给的接口路径', { user_id: userId, order_amount: orderAmount, order_no: orderNo }, thirdApiConfig) // 格式化返回结果,适配前端统一的响应格式 res.send({ code: 200, data: thirdRes.data, msg: '操作成功' }) } catch (err) { // 打印错误日志,方便后续排查问题 console.error('第三方接口调用失败:', err.response?.data || err.message) res.status(500).send({code: 500, msg: '服务异常,请稍后重试'}) } }) // 服务监听3000端口 app.listen(3000, () => { console.log('后端服务已启动,地址:http://localhost:3000') }) ```
第三步:执行命令启动后端服务:node index.js
第一步:安装axios请求库:npm install axios
第二步:封装统一请求工具,新建src/utils/request.js,复制以下代码:
```js import axios from 'axios' const service = axios.create({ // 开发环境填本地后端地址,上线后替换为线上后端地址 baseURL: 'http://localhost:3000/api', timeout: 8000 }) // 响应拦截器,统一处理错误 service.interceptors.response.use( res => res.data, err => { alert(err.response?.data?.msg || '请求失败,请稍后重试') return Promise.reject(err) } ) export default service ```第三步:在业务页面中调用接口,示例代码如下:
```js import request from '@/utils/request.js' async function submitOrder() { // 前端先做表单校验,减少无效请求 if(!this.orderNo || !this.orderAmount) { alert('请填写完整订单信息') return } try { // 打开loading状态,避免用户重复提交 this.loading = true const res = await request.post('/submit-order', { userId: '当前登录用户的ID', orderAmount: this.orderAmount, orderNo: this.orderNo }) // 成功后的业务逻辑,比如跳转支付页、更新页面状态 alert('提交成功') console.log('接口返回结果:', res.data) } catch (err) { console.error('提交失败:', err) } finally { // 关闭loading状态 this.loading = false } } ```上线前必须修改3个核心配置,避免线上报错:
上线后要把第三方接口的请求参数、返回结果、耗时都存入后端日志,出问题可以直接追溯,不要把敏感日志存在前端。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图