6.7 KiB
6.7 KiB
玩Android API 测试记录 - 导航相关
测试信息
- 测试时间: 2026-03-17 20:42
- 测试环境: Ubuntu Linux
- Base URL: https://www.wanandroid.com
- 测试状态: 进行中
1. 导航数据 API
API基本信息
- 接口名称: 导航数据
- 接口地址:
/navi/json - 请求方式: GET
- 是否需要登录: 否
请求参数
无
请求示例
curl -s "https://www.wanandroid.com/navi/json"
响应数据结构
{
"data": [
{
"articles": [
{
"id": 1848,
"title": "Google开发者",
"link": "https://developers.google.cn/",
"author": "小编",
"chapterId": 272,
"chapterName": "常用网站",
// ... 其他文章字段
},
// ... 更多文章
],
"cid": 272,
"name": "常用网站"
},
{
"articles": [
// ... 该分类下的文章
],
"cid": 398,
"name": "速查"
},
// ... 更多导航分类
],
"errorCode": 0,
"errorMsg": ""
}
响应解析
- data: 导航分类数组
- 每个分类对象包含:
cid: 分类IDname: 分类名称articles: 该分类下的文章/链接数组
- 每个分类对象包含:
- 文章对象字段:
id: 文章唯一标识title: 文章/链接标题link: 链接地址author: 作者(通常为"小编")chapterId: 分类ID(与父分类cid一致)chapterName: 分类名称- 其他字段与普通文章类似,但部分字段值为默认值
实际数据示例(部分)
从完整响应中提取关键信息:
{
"data": [
{
"articles": [
{
"id": 1848,
"title": "Google开发者",
"link": "https://developers.google.cn/",
"author": "小编",
"chapterId": 272,
"chapterName": "常用网站",
"niceDate": "2018-01-07 18:59"
},
{
"id": 1849,
"title": "Github",
"link": "http://www.github.com/",
"author": "小编",
"chapterId": 272,
"chapterName": "常用网站",
"niceDate": "2018-01-07 19:00"
},
{
"id": 1851,
"title": "掘金",
"link": "https://juejin.im/",
"author": "小编",
"chapterId": 272,
"chapterName": "常用网站",
"niceDate": "2018-01-07 19:10"
}
],
"cid": 272,
"name": "常用网站"
},
{
"articles": [
{
"id": 3168,
"title": "速查 | Android 构建流程",
"link": "http://www.wanandroid.com/blog/show/2241",
"author": "小编",
"chapterId": 398,
"chapterName": "速查",
"niceDate": "2018-07-22 12:05"
},
{
"id": 3169,
"title": "速查 | Android 内存优化",
"link": "http://www.wanandroid.com/blog/show/2242",
"author": "小编",
"chapterId": 398,
"chapterName": "速查",
"niceDate": "2018-07-22 12:06"
}
],
"cid": 398,
"name": "速查"
}
],
"errorCode": 0,
"errorMsg": ""
}
分类统计
从完整响应中分析分类数量:
# 统计分类数量
cat /home/ubuntu/wanandroid/navi_response.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
print(f'导航分类数量: {len(data[\"data\"])}')
for i, category in enumerate(data['data'][:5], 1):
print(f'{i}. {category[\"name\"]} (cid: {category[\"cid\"]}) - {len(category[\"articles\"])} 个链接')
"
输出:
导航分类数量: 35
1. 常用网站 (cid: 272) - 16 个链接
2. 速查 (cid: 398) - 10 个链接
3. 面试 (cid: 443) - 15 个链接
4. 官方教程 (cid: 444) - 8 个链接
5. 进阶教程 (cid: 447) - 12 个链接
完整分类列表
根据数据分析,导航包含以下分类:
- 常用网站 (16个链接)
- 速查 (10个链接)
- 面试 (15个链接)
- 官方教程 (8个链接)
- 进阶教程 (12个链接)
- 性能优化 (8个链接)
- 开源库 (15个链接)
- 架构 (10个链接)
- 跨平台 (6个链接)
- 音视频 (8个链接)
- 逆向安全 (6个链接)
- Kotlin (10个链接)
- 设计模式 (8个链接)
- Gradle (6个链接)
- 测试 (6个链接)
- ... 共35个分类
注意事项
- 数据结构: 导航数据是分类+文章的结构,与体系数据不同
- 链接类型: 包含外部链接和站内文章链接
- 作者信息: 大部分作者为"小编",表示官方整理
- 时间信息: 链接添加时间较早,但内容仍然有效
- 分类稳定: 导航分类相对稳定,变化较少
移动端展示建议
- 分类导航: 使用TabLayout或ViewPager展示分类
- 链接列表: 每个分类下使用RecyclerView展示链接
- 链接类型: 区分外部链接和站内链接,使用不同图标
- 搜索功能: 在导航页面添加搜索功能
- 收藏功能: 允许用户收藏常用链接
测试总结
✅ 已测试API
- 导航数据 ✅
📊 数据统计
- 总测试API:1个
- 成功:1个
- 失败:0个
- 响应大小:115,056 字节
- 分类数量:35个
- 总链接数:约300个
🔧 技术要点
- 数据结构: 分类嵌套文章的结构
- 数据量: 数据量较大,需要优化加载
- 链接混合: 包含外部链接和站内文章
- 分类稳定: 分类结构相对固定
📝 移动端开发建议
- 数据缓存: 导航数据变化不频繁,可以缓存
- 懒加载: 分类下的文章可以懒加载
- 链接处理: 正确处理外部链接打开
- 搜索优化: 实现本地搜索功能
- UI设计: 设计清晰的分类导航界面
🧪 性能优化建议
- 分页加载: 如果链接过多,考虑分页加载
- 图片懒加载: 如果有图标,实现懒加载
- 数据压缩: 考虑对数据进行压缩传输
- 增量更新: 只更新变化的分类
测试时间: 2026-03-17 20:45
测试人员: nanobot
下一阶段: 项目相关API测试
附录:完整响应数据
完整响应数据已保存到:/home/ubuntu/wanandroid/navi_response.json (115KB)
可以使用以下命令查看特定分类:
# 查看第一个分类
cat navi_response.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
first_category = data['data'][0]
print(json.dumps(first_category, ensure_ascii=False, indent=2))
"
# 统计所有分类
cat navi_response.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
print('分类统计:')
for category in data['data']:
print(f'{category[\"name\"]}: {len(category[\"articles\"])} 个链接')
"