跨端架构下客户端侧API维护方案总结

简介: 淘宝App搜索业务侧采用的是局部动态化的跨端技术架构,客户端提供丰富的基础能力与视图组件的API,前端负责业务视图搭建与业务逻辑实现。


背景

目前客户端侧对于基础能力与组件的API信息内容是通过人工使用语雀文档来进行维护,然而端侧的API是在不断地迭代的,人工维护的方式存在以下的问题:

  1. 填写内容无统一规范,导致能力/组件介绍和调用规范不准确。
  2. 无卡口管控,文档内容同步非强制操作,导致有时候会忘记同步。(很多历史能力/组件的描述内容就是这样被遗漏的)。


而当调用规范文档有缺失后,对于跨端架构下的协同开发会带来下面的问题:

  1. 能力/组件介绍缺失:前端同学开发时无法获取到准确的端侧业务能力/组件的提供范围,导致出现二次开发的情况。
  2. 调用规范缺失:因缺少能力调用规范说明,增加了跨端协同之间的答疑和联调成本,降低了开发效率。


因此如何将端侧的API信息低成本的、规范化的维护,同时能够将这块信息高效的利用起来,降低跨端协同的成本是本篇文章的主题。

思路分析

 现状


客户端侧的跨端API代码在编写时是有模板规范的(方便代码编译时检索与提取),且为了方便后续的维护,端侧同学在编写相关代码的时候,或多或少都会写一些注释对相关方法进行说明。eg:

基础能力模块相关:模块定义、模块方法

image.pngimage.png

  • 文档维护


在代码编写完后,端侧同学会按照自己的话术将注释内容进行丰富后(让前端同学能够理解的内容)维护到语雀文档中。

image.png

由于上面这种方式,无论是代码侧还是文档侧基本全靠开发同学的主观能动性来确保信息的完整和有效,那么久而久之就会出现背景中所述的问题。

 优化思路


  • 信息编写规范化


既然跨端能力代码可以有模板规范,那么也可以约定注释信息的填写模板,将注释内容信息规范化。

  • 信息收集自动化

基于规范化的注释内容,可以通过脚本工具或者编译插件工具,在代码编译时按照既定的规则将这些信息进行采集。采集到信息之后,通过服务上报的方式将数据持久化在远端数据库,方便后续的二次加工和使用。

  • 信息使用多样化

基于采集到的API信息,可以生成API介绍的网页来替代语雀文档展示的方式。

同时还可以更进一步,按照前端语言规范,将这些信息生成前端代码库的JS描述文件,实现了在前端IDE中编写代码时的端侧 Api 提示和代码补全能力,同时描述文件也可以使用npm进行版本管理。


基于以上思路分析,整体的方案链路大致如下:

image.png

综合考虑开发成本并结合Android端侧的编译环境,选择自定义Java注解和注解处理器的方式来作为信息生成的方案。


 基于注解的API信息生成


  • API注解与注解内容规范定义


既然是基于注解的自动化采集方式,我们除了需要将端侧复杂的API按照作用进行分类外,还需要对不同类目的API设计适配性的内容填写规范,使API信息尽可能的有效且丰富。


Java注解定义

image.png

image.png

  • API注解内容生成与维护工具


在实际操作过程中我们发现,为了尽可能完整的描述方法或者组件的能力和调用方式,有些比较复杂的方法需要填写的信息内容比较多,例:


image.png

如果纯手工完成信息生成和后续的维护,难免会出现内容填写格式错误的情况,一旦内容填充错误,就会导致后续的信息采集失败。
既然注解内容的生成是有模板规范的,那么我们完全可以通过工具将一些关键字段补充之后,按照规范生成对应内容,于是就有了下面的注解内容自动化生成工具。

根据关键字段生成注解内容:

image.png相应的,也能通过注解内容反序列化成关键字段。

 基于自定义注解处理器的API信息采集


基于Java自定义注解的信息在填充完成后,我们需要自定义Java注解处理器,在代码编译时将相关信息采集并处理成我们需要的格式。

  • 信息采集规则


采集规则不用特殊设计,代码编译时按照注解的定义规则,将对应注解里面的字段按照定义拆解出key-value即可。


image.png

  • 生成目标文件


信息JSON文件


按照方案设计中的构想,我们需要将采集到的API信息进行上报,为了方便数据上报,我们将信息组装成json文件。


文件生成


image.png

前端描述文件

为了支持前端IDE的代码提示,还需要按照前端的API描述文件编写规范生成对应的描述文件。

前端API描述文件规范


image.png

文件生成


image.pngimage.png

 基于脚本的API信息数据上报


目前端侧的打包发布平台支持丰富的自定义配置,在打包流水线中添加自定义脚本执行节点,在自定义脚本文件中完成API信息数据的上报和前端描述文件的发布。



进展


 使用效果


  • 前端代码提示插件


目前前端代码提示插件已能正常使用,相比之前盲写代码还是舒服了不少。IDE中使用效果如下:

image.png

  • 端侧API说明站点


通过持久化的API数据,自动生成相关API的说明站点,包含API的功能描述与调用方式。


image.png

 持续优化


  • API注解信息编译卡口检测


目前注解信息填写依靠CR规范限制开发者填写,后续考虑通过使用编译插件进行检测,对没有填写相关信息的API进行编译中断,强制开发者进行填写。


总结


以上就是淘宝App搜索业务在跨端架构下客户端侧API维护的一种思路实现方式,整体方案比较常规,也是希望通过将一些常用的工具进行组合,尽可能的提高跨端协同的效率与开发幸福感




相关文章
|
16天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23517 12
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
3天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
1180 7
|
5天前
|
人工智能 BI 持续交付
Claude Code 深度适配 DeepSeek V4-Pro 实测:全场景通关与真实体验报告
在 AI 编程工具日趋主流的今天,Claude Code 凭借强大的任务执行、工具调用与工程化能力,成为开发者与自动化运维的核心效率工具。但随着原生模型账号稳定性问题频发,寻找一套兼容、稳定、能力在线的替代方案变得尤为重要。DeepSeek V4-Pro 作为新一代高性能大模型,提供了完整兼容 Claude 协议的 API 接口,只需简单配置即可无缝驱动 Claude Code,且在任务执行、工具调用、复杂流程处理上表现极为稳定。
1358 3
|
9天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
2500 4
|
3天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
916 0
|
20天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
6019 22
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
21天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
7261 18