Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

16 KiB
Raw Permalink Blame History

玩Android 开放API 完整整理(Markdown版)

Base URL:https://www.wanandroid.com

通用返回格式:所有接口统一返回如下结构,errorCode为核心判断依据


{
    "data": Object, // 业务数据,接口不同结构不同
    "errorCode": 0, // 0=成功 / -1=普通错误 / -1001=登录失效
    "errorMsg": ""  // 错误信息,errorCode非0时非空
}

开发通用注意:

  1. 页码:早期接口从0开始,后期从1开始,按各接口说明遵循;

  2. 分页:支持page_size(取值1-40),一旦传入后续分页必须携带,否则读取错误;

  3. 登录态:需登录接口依赖Cookie持久化,登录后服务端返回Cookie,客户端存储即可;

  4. 空值处理:除标题、链接外,其他字段均可能为null,App需做兼容;

  5. POST接口:建议先通过Postman模拟调试,再接入代码。

一、2024-05-26 新增API

接口名称 接口地址 请求方式 请求参数 成功响应体示例 核心说明
鸿蒙专栏 /harmony/index/json GET 无 json { "data": { "links": {}, "open_sources": {}, "tools": {} }, "errorCode": 0, "errorMsg": "" } 返常用链接/开源/工具,复用Chapter/Article Bean
首页热门-问答 /popular/wenda/json GET 无 复用Chapter Bean结构,errorCode=0,data为问答列表 首页最受欢迎问答板块
首页热门-专栏 /popular/column/json GET 无 复用Chapter Bean结构,errorCode=0,data为专栏列表 首页最受欢迎专栏板块
首页热门-路线 /popular/route/json GET 无 复用Chapter Bean结构,errorCode=0,data为学习路线列表 首页最受欢迎学习路线

二、首页相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
首页文章列表 /article/list/{页码}/json GET 路径参数:页码(从0开始)
可选参数:page_size=1-40
data含文章列表,区分author(作者)/shareUser(分享人,此时author为null),示例:
json { "data": { "curPage":1, "datas": [{ "title":"xxx", "author":"xxx", "shareUser":null }] }, "errorCode":0, "errorMsg":"" }
支持分页,注意superChapterId为一级分类第一个子类id
首页Banner /banner/json GET 无 data为Banner数组,含id/title/url/imagePath等字段 首页轮播图数据
常用网站 /friend/json GET 无 data为网站数组,含id/name/link/desc等字段 开发常用网站导航
搜索热词 /hotkey/json GET 无 data为热词数组,含id/name字段(name为搜索关键词) 当前搜索量最高的关键词列表
置顶文章 /article/top/json GET 无 data为置顶文章数组,结构同首页文章列表 首页所有置顶文章

三、体系相关API(知识分类)

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
体系数据 /tree/json GET 无 data为二级体系数组,含一级分类id/name+二级子分类children(子分类含id/name),示例见文档 返回知识体系二级结构,子分类id用于查文章
体系下的文章 /article/list/{页码}/json GET 路径参数:页码(从0开始)
查询参数:cid=二级分类id
可选:page_size=1-40
data为文章列表,结构同首页文章列表 按知识分类查文章,cid为体系数据返回的二级id
按作者搜文章 /article/list/{页码}/json GET 路径参数:页码(从0开始)
查询参数:author=作者昵称
可选:page_size=1-40
data为该作者的文章列表,结构同首页文章列表 author为精确昵称,不支持模糊匹配

四、导航相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
导航数据 /navi/json GET 无 data为导航分类数组,含id/name/articles(articles为对应链接列表) 开发导航分类及对应链接,含分类+子链接

五、项目相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
项目分类 /project/tree/json GET 无 data为项目分类数组,含id/name(id为分类唯一标识),示例见文档 返回所有项目分类,分类id用于查对应项目列表
项目列表 /project/list/{页码}/json GET 路径参数:页码(从1开始)
查询参数:cid=分类id
可选:page_size=1-40
data为项目列表,含id/title/desc/projectLink/envelopePic等项目信息 按分类查项目,页码从1开始(区别于文章接口)

六、登录/注册/退出API

接口名称 接口地址 请求方式 请求参数(POST Body/GET) 成功响应体示例 失败响应体示例(以登录为例) 核心说明
登录 /user/login POST Body(JSON):
{ "username": "你的账号", "password": "你的密码" }
json { "data": null, "errorCode": 0, "errorMsg": "" } json { "data": null, "errorCode": -1, "errorMsg": "账号或密码错误" } 登录后服务端返回Cookie,客户端需持久化存储
注册 /user/register POST Body(JSON):
{ "username": "账号", "password": "密码", "repassword": "确认密码" }
json { "data": null, "errorCode": 0, "errorMsg": "" } json { "data": null, "errorCode": -1, "errorMsg": "用户名已存在" } 三次参数均为必传,密码需一致
退出 /user/logout/json GET 无 json { "data": null, "errorCode": 0, "errorMsg": "" } json { "data": null, "errorCode": -1001, "errorMsg": "未登录" } 服务端设置Cookie Max-Age=0,客户端需清理本地账号密码

七、收藏相关API(均需登录,Cookie持久化)

接口名称 接口地址 请求方式 请求参数(POST Body/GET) 成功响应体示例 核心说明
收藏文章列表 /lg/collect/list/{页码}/json GET 路径参数:页码(从0开始)
可选:page_size=1-40
data为收藏文章列表,含收藏id、原文章信息等 分页查询自己收藏的所有站内/站外文章
收藏站内文章 /lg/collect/{文章id}/json POST 路径参数:文章id(站内文章原始id)
Body:无
json { "data": null, "errorCode": 0, "errorMsg": "" } 直接通过文章id收藏站内文章
收藏站外文章 /lg/collect/add/json POST Body(JSON):
{ "title": "文章标题", "author": "作者", "link": "文章外链" }
json { "data": null, "errorCode": 0, "errorMsg": "" } 手动添加站外文章到收藏,三个参数均为必传
编辑收藏文章 /lg/collect/user_article/update/{文章id}/json POST 路径参数:文章id(收藏的文章id)
Body(JSON):
{ "title": "新标题", "author": "新作者", "link": "新链接" }
json { "data": null, "errorCode": 0, "errorMsg": "" } 必须传全三个参数,否则会将对应字段置空
取消收藏(文章列表) /lg/uncollect_originId/{文章id}/json POST 路径参数:文章id(列表中原始文章id)
Body:无
json { "data": null, "errorCode": 0, "errorMsg": "" } 从文章列表页取消收藏时使用
取消收藏(我的收藏页) /lg/uncollect/{收藏id}/json POST 路径参数:收藏id(收藏列表的id)
Body(JSON):
{ "originId": 原文章id(无则为-1)}
json { "data": null, "errorCode": 0, "errorMsg": "" } 从我的收藏页取消收藏时使用,originId为原文章id,无则传-1
收藏网站列表 /lg/collect/usertools/json GET 无 data为收藏网站数组,含id/name/link等字段 查询自己收藏的开发网站
收藏网址 /lg/collect/addtool/json POST Body(JSON):
{ "name": "网站名称", "link": "网站链接" }
json { "data": null, "errorCode": 0, "errorMsg": "" } 添加开发网站到收藏,两个参数均为必传
编辑收藏网站 /lg/collect/updatetool/json POST Body(JSON):
{ "id": 收藏网站id, "name": "新名称", "link": "新链接" }
json { "data": null, "errorCode": 0, "errorMsg": "" } 编辑收藏的网站,id为必传,用于定位修改对象
删除收藏网站 /lg/collect/deletetool/json POST Body(JSON):
{ "id": 收藏网站id }
json { "data": null, "errorCode": 0, "errorMsg": "" } 根据收藏网站id删除对应记录

八、搜索API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
文章搜索 /article/query/{页码}/json POST 路径参数:页码(从0开始)
Body(JSON):
{ "k": "搜索关键词" }
可选:page_size=1-40
data为搜索结果文章列表,结构同首页文章列表 支持多关键词,用空格分隔(如k: "Android Java")

九、积分相关API

接口名称 接口地址 请求方式 请求参数 成功响应体示例/核心说明 核心说明
积分排行榜 /coin/rank/{页码}/json GET 路径参数:页码(从1开始)
可选:page_size=1-40
data为排行榜列表,含用户id/name/coinCount(积分)/rank(排名) 公开的用户积分排名,无需登录
个人积分信息 /lg/coin/userinfo/json GET 无(需登录) json { "data": { "coinCount": 451, "rank": 7, "userId": 2, "username": "xxx" }, "errorCode": 0, "errorMsg": "" } 查自己的总积分、当前排名,需登录
个人积分列表 /lg/coin/list/{页码}/json GET 路径参数:页码(从1开始)
可选:page_size=1-40(需登录)
data为积分获取记录列表,含date/desc/coinCount等字段 查自己的积分获取历史,需登录

十、广场相关API(用户分享)

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
广场文章列表 /user_article/list/{页码}/json GET 路径参数:页码(从0开始)
可选:page_size=1-40
data为广场文章列表,结构同首页文章列表,部分自见文章会被过滤 所有用户分享的审核通过文章列表
分享人文章列表 /user/{用户id}/share_articles/{页码}/json GET 路径参数:用户id、页码(从1开始)
可选:page_size=1-40
data含coinInfo(用户积分信息)+shareArticles(分享文章列表),示例见文档 查指定用户的审核通过分享文章,返回该用户积分+文章
我的分享文章 /user/lg/private_articles/{页码}/json GET 路径参数:页码(从1开始)
可选:page_size=1-40(需登录)
data为自己的分享文章列表,含未审核/已审核文章 查自己分享的所有文章,需登录
删除我的分享 /lg/user_article/delete/{文章id}/json POST 路径参数:文章id(自己分享的文章id)
Body:无(需登录)
json { "data": null, "errorCode": 0, "errorMsg": "" } 删除自己分享的文章,需登录
分享文章 /lg/user_article/add/json POST Body(JSON,需登录):
{ "title": "文章标题", "link": "文章链接" }
json { "data": null, "errorCode": 0, "errorMsg": "" } 分享文章到广场,CSDN/简书等外链直接审核通过,其他仅自己可见

十一、问答相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
问答列表 /wenda/list/{pageId}/json GET 路径参数:pageId(从1开始)
可选:page_size=1-40
data为问答列表,含id/title/author/answerCount(回答数)/publishTime等字段 全站问答列表,页码从1开始
问答评论列表 /wenda/comments/{问答id}/json GET 路径参数:问答id(从问答列表获取) data为评论列表,含id(评论id,用于回复/删除)/content/author/zanCount等字段 默认按点赞倒序,登录后本人评论置顶

十二、个人信息API(需登录)

接口名称 接口地址 请求方式 请求参数 成功响应体示例 核心说明
个人信息详情 /user/lg/userinfo/json GET 无 见文档完整示例,含coinInfo(积分/等级/排名)+userInfo(昵称/邮箱/收藏id/用户名等) 积分排名非实时(每日更新),返回收藏id列表、用户基础信息

十三、站内消息API(均需登录)

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
未读消息数量 /message/lg/count_unread/json GET 无 data为未读消息数(数字类型),errorCode=0 仅返回未读数量,不改变消息状态
已读消息列表 /message/lg/readed_list/{页码}/json GET 路径参数:页码(从1开始)
可选:page_size=1-40
data为已读消息列表,含消息id/title/content/publishTime等字段 分页查询已读消息,需登录
未读消息列表 /message/lg/unread_list/{页码}/json GET 路径参数:页码(从1开始)
可选:page_size=1-40
data为未读消息列表,结构同已读消息列表 访问后所有未读消息标记为已读,勿用于仅查询未读数量,需登录

十四、公众号相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
公众号列表 /wxarticle/chapters/json GET 无 data为公众号数组,含id/name(id为公众号唯一标识) 返回收录的所有微信公众号列表
公众号历史文章 /wxarticle/list/{公众号id}/{页码}/json GET 路径参数:公众号id、页码(从1开始)
可选:page_size=1-40
data为该公众号的历史文章列表,结构同首页文章列表 按公众号查历史文章,页码从1开始
公众号文章搜索 /wxarticle/list/{公众号id}/{页码}/json GET 路径参数:公众号id、页码(从1开始)
查询参数:k=搜索关键词
可选:page_size=1-40
data为该公众号内的搜索结果文章列表,结构同首页文章列表 在指定公众号内搜索历史文章,k为搜索关键词

十五、最新项目API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
最新项目列表 /article/listproject/{页码}/json GET 路径参数:页码(从0开始)
可选:page_size=1-40
data为最新项目列表,结构同项目列表接口 按时间分页展示所有项目,首页第二个Tab数据,页码从0开始

十六、工具/教程相关API

接口名称 接口地址 请求方式 请求参数 成功响应体核心说明/示例 核心说明
开发工具列表 /tools/list/json GET 无 data为开发工具数组,含工具名称、链接、说明等字段 工具详情页未适配移动端,App展示需注意
教程列表 /chapter/547/sublist/json GET 无(547为固定值) data为教程合集数组,含id/name/author/desc/cover等(id为教程唯一标识),示例见文档 返回收录的教程合集(如阮一峰C语言/HTML教程),教程id用于查对应文章
单个教程文章 /article/list/{页码}/json GET 路径参数:页码(从0开始)
查询参数:cid=教程id&order_type=1
可选:page_size=1-40
data为教程文章列表,结构同首页文章列表,正序展示(保持教程目录结构) order_type=1强制正序,cid为教程列表返回的id,文章详情页适配移动端

十七、待办工具API(TODO)

官方推荐使用 玩Android TODO Open API v2(老接口仍支持,不推荐),所有接口均需登录(Cookie持久化),具体参数/响应体参考官方v2文档,核心说明:

  1. 支持待办的增、删、改、查、标记完成/未完成;

  2. 分页规则、返回格式与上述接口保持一致;

  3. 需注意待办的type(类型)、status(状态)字段传参规范。

我可以帮你将这份Markdown格式的API列表保存为独立的.md文件,方便你开发时直接下载、复制和查阅,需要吗?

(注:文档部分内容可能由 AI 生成)