开放通用Api,总有你喜欢的

来源: 安卓开发 作者: Roll圈圈 | 发布时间: 2019-03-13 09:48:00

开放API,方便制作 app~

作者:Roll圈圈

链接:https://juejin.im/post/5c062f0ce51d451d992a973a


这篇文章可以说是作者自己的需求,引发出一系列为大家服务的开源项目,相对来说比大家自己去找一些接口使用起来要方便,稳定性也会好一些,非常适合个人练手项目。


还记得最开始,作者的一篇文章:


  • 勇敢跨越,从0到1开发一个属于自己的App

    https://www.jianshu.com/p/be12524418a4


引发了很多同学尝试制作自己的 App,那么如果你刚好要练手,配合本文,更配哟!

1、前言

前段时间做了一个小插件,需要调用一个查询指定期号中奖号码的Api接口,找了很多开放的接口,都不合我意,要么限速,要么收费,要么进群。还可能不稳定,接口动不动就被改掉了,导致访问失败。遂罢。

自己撸一个!


首先实现的是给自己用的相关的Api,推荐给朋友后试着还不错,于是在朋友的推荐下新增了一些其他的api接口,为之购买了独立的服务器并部署了项目,目前域名正在备案中。

2、目标

我会坚持维护,也会积极响应朋友的号召,有好的意见也会积极采纳并实施。更重要的是:接口不限速,不收费,不加群,但希望你不要频繁请求,注意优化自己的逻辑,频繁调用系统可能会禁用你的ip,导致你无法正常请求。更不要恶意攻击,且行且珍惜。

3、说明

博客中的Api文档是截止昨晚发布的,不会实时更新,以后新增的Api接口以及详细的文档说明都会在Github上进行,我会尽心维护,尽力写好文档。当然在使用过程中有什么问题或者建议,最好是在Github的issue中提出来或者直接联系我。您的star就是对我最大的鼓励!


GIthub地址:

https://github.com/MZCretin/RollToolsApi

个人站点主页:

www.mxnzp.com

4、接口文档

节假日及万年历


  • 指定日期的节假日及万年历信息

  • 指定多个日期的节假日及万年历信息

  • 指定月份所有的节假日及万年历信息

  • 指定月份指定类型的所有的节假日及万年历信息

  • 指定年份所有的节假日及万年历信息

  • 指定年份指定类型的所有的节假日及万年历信息


全国城市列表(全国地级市API,数据来源国家统计局)


  • 全国城市列表

  • 搜索全国城市列表


IP地址信息

    

  • 获取访问者的ip地址信息

  • 获取指定ip的ip地址信息

    

小工具


  • 获取不重复长ID

  • 获取不重复短ID


天气信息


  • 获取特定城市今日天气

  • 获取特定城市今天及未来天气


笑话段子


  • 分页获取笑话段子列表

  • 随机获取笑话段子列表


生成二维码


  • 生成单一二维码

  • 生成带logo二维码


条形码相关


  • 生成指定条形码

  • 获取条形码对应的商品信息


生成随机图片验证码


  • 生成随机图片验证码


恩,因为接下来都是所有的API,这里我就挑重点,把通用的介绍了,再介绍两个例子。有需要的直达github即可:

https://github.com/MZCretin/RollToolsApi

5、通用

HOST地址:

www.mxnzp.com/api


说明: 所有的接口都会返回如下格式的数据,具体数据包装在data中,需要根据状态来确定请求是否成功。


请求方法: 所有的请求中都是大部分都是GET请求(如果有特殊情况,则会特殊标明)


数据返回格式:


{
    "code"1,
    "msg""数据返回成功",
    "data"null
}


数据返回格式说明(下面所有接口中的数据返回都是基于data的,不再介绍code和msg,请知悉):


  • code: 状态码 1 返回成功 0 返回失败 此时,请关注msg错误信息

  • msg: 提示信息,当code返回0的时候包含错误提示信息

  • data: 主要信息,不同接口返回的东西不一样

6、示例

比如你想做个万年历


指定日期的节假日及万年历信息


接口说明: 获取指定日期的节假日及万年历信息

接口地址: [HOST]/holiday/single/{date}  【例如: [HOST]/holiday/single/20181121】

参数说明: date 日期 格式 yyyyMMdd


返回数据


  • date: 当前日期

  • weekDay: 当前周第几天 1-周一 2-周二 ... 7-周日

  • yearTips: 天干地支纪年法描述 例如:戊戌

  • type: 类型 0 工作日 1 假日 2 节假日

  • typeDes: 类型描述 比如 国庆,休息日,工作日

  • chineseZodiac: 属相 例如:狗

  • solarTerms: 节气描述 例如:小雪

  • lunarCalendar: 农历日期

  • suit: 宜事项

  • dayOfYear: 这一年的第几天

  • weekOfYear: 这一年的第几周


数据样例


{
    "code"1,
    "msg""数据返回成功",
    "data": {
        "date""2018-11-25",
        "weekDay"7,
        "yearTips""戊戌",
        "type"1,
        "chineseZodiac""狗",
        "solarTerms""小雪后",
        "typeDes" : "休息日",
        "avoid""移徙.入宅.安门.作梁",
        "lunarCalendar""10-18",
        "suit""祈福.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.谢土",
        "dayOfYear"329,
        "weekOfYear"47
    }
}


指定月份所有的节假日及万年历信息


接口说明: 获取指定月份的节假日及万年历信息

接口地址: [HOST]/holiday/list/month/{date}  【例如: [HOST]/holiday/list/month/201802】

参数说明: date 查询的月份 格式 yyyyMM (只有年月)


数据样例:


{

    "code"1,
    "msg""数据返回成功",
    "data": [
        {
            "date""2018-02-01",
            "weekDay"4,
            "yearTips""丁酉",
            "type"0,
            "chineseZodiac""鸡",
            "typeDes" : "工作日",
            "solarTerms""大寒后",
            "avoid""开仓.嫁娶.移徙.入宅",
            "lunarCalendar""12-16",
            "suit""祭沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.成服.出行.合帐.造畜椆栖",
            "dayOfYear"32,
            "weekOfYear"5
        },
        ...中间隐藏了"2018-02-02"~"2018-02-27"的数据
        {
            "date""2018-02-28",
            "weekDay"3,
            "yearTips""戊戌",
            "type"0,
            "chineseZodiac""狗",
            "typeDes" : "工作日",
            "solarTerms""雨水后",
            "avoid""掘井",
            "lunarCalendar""1-13",
            "suit""裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.立碑.安香.会亲友.出行.祈福.求嗣.上梁.放水",
            "dayOfYear"59,
            "weekOfYear"9
        }
    ]

}


省略更多类型...


比如你想做个天气App


接口说明: 获取特定城市今天及未来天气信息

接口地址: [HOST]/weather/forecast/{城市名}   【例如: [HOST]/weather/forecast/深圳市】

参数说明: {城市名}  传入你需要查询的城市,请尽量传入完整值,否则系统会自行匹配,可能会有误差


返回数据


  • date: 日期

  • dayOfWeek: 星期

  • dayWeather: 白天天气描述

  • nightWeather: 晚上天气描述

  • dayTemp: 白天温度

  • nightTemp: 晚上温度

  • dayWindDirection: 白天风向

  • nightWindDirection: 晚上风向

  • dayWindPower: 白天风力

  • nightWindPower: 晚上风力

  • address: 城市具体信息,比如 “广东省 深圳市”

  • cityCode: 城市code

  • reportTime: 此次天气发布时间

  • forecasts: 今天及未来天气列表


数据样例:


{
    "code"1,
    "msg""数据返回成功",
    "data": {
        "address""广东省 深圳市",
        "cityCode""440300",
        "reportTime""2018-11-27 22:40:53",
        "forecasts": [
            {
                "date""2018-11-27",
                "dayOfWeek""2",
                "dayWeather""阵雨",
                "nightWeather""小雨",
                "dayTemp""22℃",
                "nightTemp""17℃",
                "dayWindDirection""无风向",
                "nightWindDirection""无风向",
                "dayWindPower""≤3级",
                "nightWindPower""≤3级"
            },
            ...这里只显示了一条数据...
        ]
    }
}


好了,文章中提到的功能的API基本都这么详细...自行玩耍吧!



●编号455,输入编号直达本文

●输入m获取到文章目录

推荐↓↓↓

Java编程

更多推荐25个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

公众号导航