前言
新型冠狀病毒籠罩下的新年,讓每個中國人都感到恐慌和揪心。我們每天為前線的白衣天使和平民英雄們的事蹟感動而落淚,也為不法分子哄抬物價,無良個人以權謀私等自私自利的行為而感到痛心疾首。作為普通人,我們最大的貢獻就是宅在家裡,響應鐘南山院士的號召,做好個人防護,不為疫情添負擔,不為他人添麻煩。最近看到很多大佬都為“戰疫”貢獻了自己的技術力量,有的人提供了資料和介面支援,有的人做了app
,有的人做了webapp
。看到這些舉動,我也躍躍欲試,靜下心去做,總會做點東西出來,於是我做了一版微信小程式,主要是想方便自己和家人朋友們查詢下最新的資料,畢竟大家都用微信。
微信小程式的版本稽核實在太慢了,昨天提交版本稽核的,現在還沒通過,唉,心累。
資料獲取和處理
首先要感謝丁香園,資料來源於丁香園-丁香醫生。
重點要感謝掘金@普通程式設計師提供的資料介面能力,讓我們菜雞也有機會做一點微小的工作。
為了防止給大佬的伺服器增加訪問壓力,我每15分鐘抓取一次介面資料,儲存於個人伺服器上,供自己和他人訪問和使用。
Q: 為什麼別人有提供介面,你還要再多此一舉?A:我要做小程式,沒有https搞不了。
目前主要上線了以下介面:
線上介面基地址: https://wuhan.wbjiang.cn/api/
介面名 | 請求方式 | 介面描述 |
---|---|---|
timeline | GET | 獲取發生的事件,支援分頁引數pageNo和pageSize |
stats | GET | 整體統計資料 |
rumour | GET | 最新闢謠 |
protect_wiki | GET | 最新防護知識 |
wiki | GET | 最新知識百科 |
help_links | GET | 便民資訊/診療資訊 |
province_stats | GET | 全國省份級患者分佈資料 |
city_stats/:areaName | GET | 根據省份查市縣疫情資料,areaName傳入省級行政區的簡寫,如“湖南” |
oversea_stats | GET | 全球海外其他地區患者分佈資料 |
可以點選線上訪問整體統計資料試試看呢!
https://wuhan.wbjiang.cn/api/stats
複製程式碼
該服務的原始碼我也上傳到了github
,歡迎訪問wuhan_best_wishes檢視,如果能順手給個star
那是極好的,感謝感謝!
HTTPS支援
由於微信小程式需要呼叫https
協議的介面,所以我利用nginx
的能力和阿里雲提供的SSL
證書,對上述介面提供了https
支援。
服務整體框架
介面服務:使用的是nodejs
語言,技術框架是express
。
應用管理:利用pm2
來管理node
應用。
代理伺服器:利用Nginx
監聽80
埠,轉發到node
服務所在的內部埠。
小程式概述
取名挺煩的,擬的名字要麼是被行業限制,要麼已經有人用了。最後就隨便取了個名wuhan速報。
技術方面,我暫時沒有使用框架,用的是小程式原生的開發語言。為了快速出第一版效果,UI
部分用到了我熟悉的vant-weapp
。
相關程式碼已開源,請訪問ncov-weapp檢視原始碼。
先發個小程式碼,方便大家直接訪問小程式(暫時還沒通過稽核,微信小程式稽核速度你懂的,如果想體驗一下的話,歡迎加我微信ice_lloly使用體驗版)。
小程式內容
內容上,主要做了四個頁面,分為疫情地圖,闢謠與防護,事件播報,疾病知識等幾塊。
疫情統計資料
疫情地圖與趨勢
國內省市疫情分佈
海外疫情分佈
闢謠與防護
最新事件實時播報
疾病知識
為了快速出效果,做的時候有參考丁香園的設計,感謝丁香園技術和設計團隊!
結語
由於時間有限,大概花了一天多的時間吧,所以做出來的效果是比較粗糙的。接下來我會在有餘力的情況下,繼續迭代更新,畢竟還是要遠端辦公的,大部分時間還是要聚焦於公司業務。