当前位置: 首页
前端开发
程序员转型:从PHP到AI+Golang网络请求封装优化

程序员转型:从PHP到AI+Golang网络请求封装优化

时间:2026-07-26
转载

优化网络请求封装:自定义选项独立为第二参数,提升可读性与维护性;新增字段命名自动转换,默认后端snake_case转前端camelCase,请求时反向转换,统一命名风格。

这一期,我们继续深入网络请求封装的优化实践。上一期我们探讨了前端点选验证码组件的实现,本期则将重点放在请求层的细节打磨与优化上。

从 PHP 到 AI + Golang,程序员自救转型手记(二十一):网络请求封装优化

网络请求封装优化

首先来看第一个改动:将自定义请求选项从嵌套参数中分离出来,独立传递。

请求选项独立参数传递:提升代码可读性

目前,当需要自定义请求选项时,代码写法如下——在第一个参数中嵌套一个requestOptions对象:

 复制代码export function checkClickCaptcha(data: ClickRequest, apiBaseURL?: string) {
    return request({
        url: '/common/captcha/verify',
        method: 'POST',
        requestOptions: {
            loading: true,
            cancelDuplicate: true,
            showErrorMessage: false,
        },
    })
}

直观来看,我们希望改为如下形式:将requestOptions直接作为第二个参数独立传递给request函数。这样,第一个参数仅包含axios的标准请求配置,第二个参数则为自定义选项:

 复制代码export function checkClickCaptcha(data: ClickRequest) {
    return request(
        {
            url: '/common/captcha/verify',
            method: 'POST',
            data,
        },
        {
            loading: true,
            cancelDuplicate: true,
            showErrorMessage: false,
        }
    )
}

参数1为axios请求配置,参数2为自定义请求选项。独立分离后,代码的可读性、类型推导、扩展性及维护性均得到全面提升。这个思路源于编写提示词时的灵感,直接交给CC(AI助手)实现:

 复制代码● 重构完成。改动总结如下:修改的文件1. src/utils/request.ts- 删除了 RequestConfig 接口(已不需要,直接使用 AxiosRequestConfig)
- request 函数签名从 request(config: RequestConfig) 改为 request(config: AxiosRequestConfig, options?: RequestOptions)
- 内部将 options 合并到 config 的 requestOptions 字段上,拦截器逻辑无需任何改动2. src/api/common.ts- checkClickCaptcha 中的 requestOptions 从第一个参数嵌套中提取为独立的第二个参数:
// 之前
request({ url: '...', requestOptions: { showErrorMessage: false } })
// 之后
request({ url: '...' }, { showErrorMessage: false })无需改动的文件- src/api/admin/index.ts — 未使用 requestOptions,现有的单参数调用完全兼容
- 其他不涉及 requestOptions 的调用方同样无需改动,因为 AxiosRequestConfig 就是之前第一个参数去掉 requestOptions 后的类型 Baked for 50s

人工review后确认无误。说实话,实际修改的代码量并不多,反而提示词写了不少。不得不承认,有些失算。

后端接口响应字段自动转换为 camelCase 命名风格

第二个改动更具趣味性。各语言服务端及网络传输惯例中,JSON字段通常采用snake_case命名。而前端开发者更习惯使用camelCase访问数据。因此,在请求层实现自动转换,已是常见最佳实践。

这里要求CC添加一个转换开关,默认开启,并实现该功能。来看具体效果:

全部完成,以下是变更总结:

变更清单 src/utils/request.ts — 核心改造

变更项说明描述
import { camelCase }引入 lodash-es 的 camelCase,复用已有依赖,无需新增
convertCase?: boolean新增请求选项 convertCase,默认开启(true)
keysToCamelCase()递归转换函数,支持对象、数组及嵌套结构
响应拦截器 L190-193在响应拦截器中自动对 response.data.data 执行转换

接口 + Store + 模板统一改名

文件变更
src/stores/interface/index.ts字段命名从 snake_case 改为 camelCase:last_login_at → lastLoginAt,last_login_ip → lastLoginIp
src/stores/adminInfo.ts初始 state 同步改为 camelCase
src/layouts/admin/components/na vMenu.vue模板变量引用改为 adminInfo.lastLoginAt

使用方式:

// 默认:自动转换(开关打开)

request({ url: '/admin/init', method: 'GET' })

// 某个接口不需要转换时,显式关闭

request({ url: '/some/api', method: 'GET' }, { convertCase: false })

这样一来,前端所有接口的响应字段均统一为camelCase风格,彻底解决了命名不一致的问题。

在review时,直接要求它同时将请求中的camelCase数据反向转换为snake_case(由同一开关控制)。从此前后端命名风格彻底解耦——该功能通常仅在大型项目中配置,但借助AI轻松实现,效果显著。

现在起:

  1. API响应中,snake_case命名字段自动转换为camelCase;
  2. 发起请求时,传递的camelCase数据(含data和params)自动转为snake_case。

前端可全程使用camelCase,开发体验显著提升。例如:

  1. 访问响应数据时,接口返回res.data.data.admin_info.last_login_at,现在可直接用res.data.data.adminInfo.lastLoginAt获取;
  2. 发起请求时,data可写为{adminInfo: {lastLoginAt: '2023-05-01'}},发送时自动转换为{admin_info: {last_login_at: '2023-05-01'}},简洁高效。

本期网络请求封装优化就此告一段落。下期将继续推进后续模块的封装与优化工作,敬请期待。

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
CSS3入门指南:常用特性解析与实战练习路径

CSS3入门指南:常用特性解析与实战练习路径

CSS3是现代网页开发的核心技术,涵盖圆角、阴影、渐变、过渡、动画及响应式布局等高频特性。本文梳理了CSS3的核心应用场景、分步学习路径与综合练习案例,帮助初学者快速建立从基础排版到现代交互的完整开发思路,并规避常见样式陷阱。

时间:2026-09-01 06:33
CSS border 边框属性详解:语法、拆分写法与常见问题排查

CSS border 边框属性详解:语法、拆分写法与常见问题排查

本文系统讲解CSS标准边框属性border的完整语法结构,涵盖简写与拆分写法、单边控制技巧及border-radius配合方案。针对边框不显示、元素尺寸异常等高频问题提供排查路径,帮助开发者快速掌握边框设置规范并提升界面视觉一致性。

时间:2026-09-01 06:33
CSS3动画属性有哪些:常用属性与用法说明

CSS3动画属性有哪些:常用属性与用法说明

CSS3动画主要分为transition过渡与animation关键帧两类。本文梳理常用属性、简写语法与@keyframes规则,结合悬停、入场、循环等场景给出代码示例与选型建议,帮助开发者快速写出流畅且可控的动画效果。

时间:2026-09-01 06:32
CSS3渐变色语法与常见用法

CSS3渐变色语法与常见用法

CSS3渐变色通过纯代码生成平滑颜色过渡,广泛用于按钮、横幅与卡片背景。本文系统梳理线性与径向渐变的核心语法、方向控制、停靠点设置及多层叠加技巧,提供可直接复用的场景代码,并给出兼容性策略与常见渲染异常排查方法,帮助开发者快速构建稳定、可维护的渐变样式。

时间:2026-09-01 06:31
CSS3手册中文版下载指南:获取渠道、筛选标准与使用建议

CSS3手册中文版下载指南:获取渠道、筛选标准与使用建议

寻找CSS3手册中文版下载资源时,如何判断来源可靠性、筛选高质量内容并有效使用?本文从获取渠道、版本识别、下载验收到替代方案,提供一套可执行的判断标准,帮助你快速找到适合学习或查阅的中文手册。

时间:2026-09-01 06:30
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全