稳住,今天是周末。

网站刚上线的时候,就有issue提出要出点API,做个客户端。不过当时处于网站初期,很多功能变化包括接口的变化都处于非稳定阶段。直到今天,基本上基础功能的接口都完备了,故开放出API出来,有兴趣的可以做个app练手。

当前了,为了更好的进行,首先替大家找了两个功能较为完备的开源项目,一个是Java版本的,一个是Kotlin版本,可以在开发过程中用于参考。

  1. Java版本:

https://github.com/salecoding/WanAndroid

  1. Kotlin版本:

https://github.com/wangzailfm/WanAndroidClient

贴一张图吧:

当然你也可以在github上搜索wanandroid,也有一些项目了,感谢大家支持。

下面就是无聊的API了,下面内容可以直接跳过,点击阅读全文访问了~~

由于早期开放的一些API页码为0开始,后期接口修改为从1开始,为了兼顾之前的开放API,故无法统一。

对于POST接口建议使用postman模拟

返回数据结构定义:


{
    "data": ...,
    "errorCode": 0,
    "errorMsg": ""
}

所有的返回结构均为上述,其中errorCode如果为负数则认为错误,此时errorMsg会包含错误信息。data为Object,返回数据根据不同的接口而变化。

如果遇到接口错误,请及时通过

https://github.com/hongyangAndroid/wanandroid反馈。

1.首页相关

1.1 首页文章列表

http://www.wanandroid.com/article/list/0/json
方法:GET
参数:页码,拼接在连接中,从0开始。

可直接点击查看示例:http://www.wanandroid.com/article/list/1/json。

注意:页码从0开始,拼接在链接上。

对应的就是首页feed了:

1.2 首页banner

http://www.wanandroid.com/banner/json
方法:GET
参数:无

可直接点击查看示例:http://www.wanandroid.com/banner/json

对应的就是banner了:

1.3 常用网站


http://www.wanandroid.com/friend/json
方法:GET
参数:无

可直接点击查看示例:http://www.wanandroid.com/friend/json

对应: 1.4 搜索热词

即目前搜索最多的关键词。


http://www.wanandroid.com//hotkey/json
方法:GET
参数:无

可直接点击查看示例:http://www.wanandroid.com/hotkey/json

对应:

2. 体系

2.1 体系数据


http://www.wanandroid.com/tree/json
方法:GET
参数:无

可直接点击查看示例:http://www.wanandroid.com/tree/json

主要标识的网站内容的体系结构,二级目录。部分数据参考:



{
    "children": [
        {
            "children": [],
            "courseId": 13,
            "id": 60, // id会在查看该目录下所有文章时有用
            "name": "Android Studio相关", // 子名称
            "order": 1000,
            "parentChapterId": 150,
            "visible": 1
        },...
    ],
    "courseId": 13,
    "id": 150,
    "name": "开发环境", // 一级的名称
    "order": 1,
    "parentChapterId": 0,
    "visible": 1
}

2.2 知识体系下的文章


http://www.wanandroid.com/article/list/0?cid=60
方法:GET
参数:
    cid 分类的id,上述二级目录的id
    页码:拼接在链接上,从0开始。

例如查看类别:Android Studio下所有的文章:http://www.wanandroid.com/article/list/0?cid=60

体系相关对应页面:

3. 导航

3.1 导航数据


http://www.wanandroid.com/navi/json
方法:GET
参数:无

可直接点击查看示例:http://www.wanandroid.com/navi/json

对应页面: 4. 项目

4.1 项目分类


http://www.wanandroid.com/project/tree/json
方法: GET
参数: 无

项目为包含一个分类,该接口返回整个分类。


[
    {
        "children": [],
        "courseId": 13, 
        "id": 294, // 该id在获取该分类下项目时需要用到
        "name": "完整项目", // 该分类名称
        "order": 145000,
        "parentChapterId": 293,
        "visible": 0
    }
]

可以直接访问:http://www.wanandroid.com/project/tree/json

4.2 项目列表数据

某一个分类下项目列表数据,分页展示



http://www.wanandroid.com/project/list/1/json?cid=294
方法:GET
参数:
    cid 分类的id,上面项目分类接口
    页码:拼接在链接中,从1开始。

可以直接访问:http://www.wanandroid.com/project/list/1/json?cid=294

项目相关对应页面:

5. 登录与注册

5.1 登录


http://www.wanandroid.com/user/login
方法:POST
参数:
    username,password

5.2 注册


http://www.wanandroid.com/user/register
方法:POST
参数
    username,password,repassword

登录后会在cookie中返回账号密码,只要在客户端做cookie持久化存储即可自动登录验证。

6. 收藏

注意所有收藏相关都需要登录操作,建议登录将返回的cookie(其中包含账号、密码)持久化到本地即可。

6.1 收藏文章列表


http://www.wanandroid.com/lg/collect/list/0/json
方法:GET
参数: 页码:拼接在链接中,从0开始。

在网站上登录后,可以直接访问http://www.wanandroid.com/lg/collect/list/0/json查看自己收藏的文章。

6.2 收藏站内文章


http://www.wanandroid.com/lg/collect/1165/json
方法:POST
参数: 文章id,拼接在链接中。

注意链接中的数字,为需要收藏的id.

6.3 收藏站外文章


http://www.wanandroid.com/lg/collect/add/json
方法:POST
参数:
    title,author,link

6.4 取消收藏

取消收藏一共有两个地方可以触发:

6.4.1 文章列表

http://www.wanandroid.com/lg/uncollect_originId/2333/json

id传入的是列表中文章的id。

6.4.2 我的收藏页面(该页面包含自己录入的内容)

http://www.wanandroid.com/lg/uncollect/2805/json

id传入的是,我的收藏文章列表的id。

6.5 收藏网站列表


http://www.wanandroid.com/lg/collect/usertools/json
方法:GET
参数:无

6.6 收藏网址


http://www.wanandroid.com/lg/collect/addtool/json
方法:POST
参数:
    name,link

6.7 编辑收藏网站

http://www.wanandroid.com/lg/collect/updatetool/json
方法:POST
参数:
    id,name,link

6.8 删除收藏网站


http://www.wanandroid.com/lg/collect/deletetool/json
方法:POST
参数:
    id

收藏对应页面:

7. 搜索

7.1 搜索


http://www.wanandroid.com/article/query/0/json
方法:POST
参数:
    页码:拼接在链接上,从0开始。
    k : 搜索关键词

注意:支持多个关键词,用空格隔开。

对应页面:

好了,大家周末愉快~~

如果遇到任何问题,可以在issue上给我反馈,也欢迎大家加入交流群:591683946。