作者: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級"
},
...這裡只顯示了一條資料...
]
}
}