NAMI:專為微信小程序服務端開發而生
NAMI:專為微信小程序服務端開發而生
面向前端開發人員的后端邏輯容器. 百度云盤(最新版本0.2.0): http://pan.baidu.com/s/1bJmUtg
什么是NAMI
微信小程序的前端框架,官方命名為MINA;那我們的非官方后端就呼應一下,姑且命名為NAMI(納米)。
NAMI提供了一個小程序服務端所需 所有 服務的支持, 包括但不僅限于處理request請求、接收和處理websocket、與微信服務端交互并維護access_token、處理微信服務端登錄鑒權、發送模板消息、接收微信支付事件 ,等等。
對于小應用:你只需要找一臺電腦(無論windows、mac還是linux),一臺云虛擬機,甚至一個docker實例,就可以安裝NAMI;NAMI提供了一整套完整的小程序后端解決方案,替你包攬有關小程序后端開發的所有問題。
對于大應用:可能小程序只是你整個IT架構的其中一部分;可能你還需要考慮負載均衡,考慮多實例部署,考慮緩存;NAMI可以作為一個純粹的JAVA開源框架,簡化你的JAVA開發,幫你更高效解決與小程序有關的問題。
NAMI受眾
前端開發工程師
不需了解JAVA、PHP或其他后端語言;
不需要安裝TOMCAT,不需要LAMP;
用你 最熟悉的javascript語言編寫后端邏輯 ,用命令式的語句直接操作數據庫,調用微信后臺服務( 你試過用javascript發送模板消息嗎? )
專注于業務實現,而不想糾結于技術的小程序后端開發者
也許你是有經驗的JAVA或PHP程序員,但是leader給你開發小程序的時間不多了;
面對著 鑒權登錄、支付、模板消息、用unionid打通服務號 ,看著微信官方文檔的 access token心跳維持、加密解密 ,你頭都大了;
也許你更擅長需求建模、業務邏輯開發,但不想糾結于技術細節;
NAMI采用腳本式開發, 只要會寫if(判斷)會寫for-each(循環) ,你的問題都可以快速高效解決。
JAVA程序員
NAMI采用純粹的JAVA語言開發,擁有清晰的封裝和外部API;
NAMI內置動態腳本引擎,對微信官方服務端API進行全封裝;
NAMI 也可以成為你JAVA項目的其中一個開源獨立JAR包 ,幫你更高效快速解決問題。
NAMI特性
- 可直接運行于任意主流IAAS或PAAS或docker容器,如阿里云、網易蜂巢
- 內置JDK,內置tomcat,支持跨平臺(windows/linux/macOS)
- 內置https解決方案,快速申請免費證書并自動維持永久生效
- javaEE技術架構,成熟的橫向擴展方案,支持高并發、高可用系統需求,能支持大型/超大型系統
- 傻瓜化腳本開發模式,只關注業務邏輯,不糾結技術實現
- 支持javascript,groovy,java語言開發業務邏輯,總有一款合你意
- 微信API封裝,消息、支付、鑒權簡單實現
NAMI關鍵模塊
- 簡潔的request門面
- 配置化websocket
- 內置腳本邏輯引擎(可選語言:groovy/javascript/el)
- 全量微信API封裝
- 解壓即可運行的容器式封裝
- 小程序文件上傳下載體系封裝
- 內置的https解決方案封裝
一個例子
- 前端發起一個request
前端源碼:
//==================NAMI HELLO WORLD begin =================
//第一個NAMI小程序調用
wx.request({
url: 'http://localhost:8080/request/hello.js',
data: {
a : 'hello',
b : 2
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
// header: {}, // 設置請求的 header
success: function(res){
// success
},
fail: function() {
// fail
},
complete: function(res) {
// complete
console.log("調用完成");
console.log(res.data);
}
})
//==================NAMI HELLO WORLD end =================
1.啟動NAMI后,在request目錄中增加腳本
后端源碼:
//definde
function main() {
var a = request.getString("a") || 'none';
var b = request.getInteger("b") || 0;
return {
a : a,
b : b
}
}
// invoke
main();</code></pre>
2.前端回調結果

系列文章
如何打包
用maven構建,根目錄執行:
mvn clean install
打包結果在/package/target/nami-pack-<platform>.zip, platform = nojdk|win32|win64|linux32|linux64