共克時疫,https+小程式為“戰疫”獻上一份技術力量

Tusi發表於2020-02-07

前言

新型冠狀病毒籠罩下的新年,讓每個中國人都感到恐慌和揪心。我們每天為前線的白衣天使和平民英雄們的事蹟感動而落淚,也為不法分子哄抬物價,無良個人以權謀私等自私自利的行為而感到痛心疾首。作為普通人,我們最大的貢獻就是宅在家裡,響應鐘南山院士的號召,做好個人防護,不為疫情添負擔,不為他人添麻煩。最近看到很多大佬都為“戰疫”貢獻了自己的技術力量,有的人提供了資料和介面支援,有的人做了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使用體驗版)。

wuhan速報小程式碼

小程式內容

內容上,主要做了四個頁面,分為疫情地圖闢謠與防護事件播報疾病知識等幾塊。

疫情統計資料

首頁-資料統計

疫情地圖與趨勢

疫情地圖和趨勢圖

國內省市疫情分佈

地區疫情資料

海外疫情分佈

海外疫情分佈

闢謠與防護

闢謠與防護

最新事件實時播報

事件播報

疾病知識

疾病知識

為了快速出效果,做的時候有參考丁香園的設計,感謝丁香園技術和設計團隊!

結語

由於時間有限,大概花了一天多的時間吧,所以做出來的效果是比較粗糙的。接下來我會在有餘力的情況下,繼續迭代更新,畢竟還是要遠端辦公的,大部分時間還是要聚焦於公司業務。

相關文章