Files
nanocode/wanandroid/wanandroid_api_导航测试.md
T
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

6.7 KiB
Raw Blame History

玩Android API 测试记录 - 导航相关

测试信息


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: 分类ID
      • name: 分类名称
      • 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 个链接

完整分类列表

根据数据分析,导航包含以下分类:

  1. 常用网站 (16个链接)
  2. 速查 (10个链接)
  3. 面试 (15个链接)
  4. 官方教程 (8个链接)
  5. 进阶教程 (12个链接)
  6. 性能优化 (8个链接)
  7. 开源库 (15个链接)
  8. 架构 (10个链接)
  9. 跨平台 (6个链接)
  10. 音视频 (8个链接)
  11. 逆向安全 (6个链接)
  12. Kotlin (10个链接)
  13. 设计模式 (8个链接)
  14. Gradle (6个链接)
  15. 测试 (6个链接)
  16. ... 共35个分类

注意事项

  1. 数据结构: 导航数据是分类+文章的结构,与体系数据不同
  2. 链接类型: 包含外部链接和站内文章链接
  3. 作者信息: 大部分作者为"小编",表示官方整理
  4. 时间信息: 链接添加时间较早,但内容仍然有效
  5. 分类稳定: 导航分类相对稳定,变化较少

移动端展示建议

  1. 分类导航: 使用TabLayout或ViewPager展示分类
  2. 链接列表: 每个分类下使用RecyclerView展示链接
  3. 链接类型: 区分外部链接和站内链接,使用不同图标
  4. 搜索功能: 在导航页面添加搜索功能
  5. 收藏功能: 允许用户收藏常用链接

测试总结

✅ 已测试API

  1. 导航数据 ✅

📊 数据统计

  • 总测试API:1个
  • 成功:1个
  • 失败:0个
  • 响应大小:115,056 字节
  • 分类数量:35个
  • 总链接数:约300个

🔧 技术要点

  1. 数据结构: 分类嵌套文章的结构
  2. 数据量: 数据量较大,需要优化加载
  3. 链接混合: 包含外部链接和站内文章
  4. 分类稳定: 分类结构相对固定

📝 移动端开发建议

  1. 数据缓存: 导航数据变化不频繁,可以缓存
  2. 懒加载: 分类下的文章可以懒加载
  3. 链接处理: 正确处理外部链接打开
  4. 搜索优化: 实现本地搜索功能
  5. UI设计: 设计清晰的分类导航界面

🧪 性能优化建议

  1. 分页加载: 如果链接过多,考虑分页加载
  2. 图片懒加载: 如果有图标,实现懒加载
  3. 数据压缩: 考虑对数据进行压缩传输
  4. 增量更新: 只更新变化的分类

测试时间: 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\"])} 个链接')
"