歡迎光臨
每天分享高質量文章

開放通用Api,總有你喜歡的

作者: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基本都這麼詳細…自行玩耍吧!

赞(0)

分享創造快樂