Giter Site home page Giter Site logo

wodenwang / nami Goto Github PK

View Code? Open in Web Editor NEW
315.0 28.0 87.0 288.05 MB

专为小程序而生的服务端开发容器

Home Page: http://www.riversoft.com.cn

License: Apache License 2.0

Java 2.16% Batchfile 0.90% Shell 3.27% Groovy 0.07% JavaScript 0.01% HTML 20.32% C 11.08% C++ 4.11% CSS 5.74% Roff 52.35%
nami wechat javascript groovy

nami's Introduction

NAMI:专为微信小程序服务端开发而生

面向前端开发人员的后端逻辑容器.

什么是NAMI

微信小程序的前端框架,官方命名为MINA;那我们的非官方后端就呼应一下,姑且命名为NAMI(纳米)。
NAMI提供了一个小程序服务端所需所有服务的支持,包括但不仅限于处理request请求、接收和处理websocket、与微信服务端交互并维护access_token、处理微信服务端登录鉴权、发送模板消息、接收微信支付事件,等等。

对于小应用:你只需要找一台电脑(无论windows、mac还是linux),一台云虚拟机,甚至一个docker实例,就可以安装NAMI;NAMI提供了一整套完整的小程序后端解决方案,替你包揽有关小程序后端开发的所有问题。

对于大应用:可能小程序只是你整个IT架构的其中一部分;可能你还需要考虑负载均衡,考虑多实例部署,考虑缓存;NAMI可以作为一个纯粹的JAVA开源框架,简化你的JAVA开发,帮你更高效解决与小程序有关的问题。

更多精美介绍(感谢公司前端小伙伴做的页面):http://riversoft.com.cn/nami.html

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解决方案封装

一个例子

  1. 前端发起一个request 前端源码:
    //==================NAMI HELLO WORLD begin =================
    //第一个NAMI小程序调用
    wx.request({
      url: 'http://localhost:8080/request/hello.js',
      data: {
        a : 'hello',
        b : 2
      },
      complete: function(res) {
        console.log("调用完成");
        console.log(res.data);
      }
    })
    //==================NAMI HELLO WORLD end =================
  1. 启动NAMI后,在request目录中增加脚本 后端源码:
(function() {
	var a = request.getString("a") || 'none';
	var b = request.getInteger("b") || 0;

	return {
		a : a,
		b : b
	}

})();
  1. 前端回调结果

开发规范

事务管理

NAMI采用函数式开发,无论function抑或request,一个文件代表一个函数(或请求)。NAMI约定:

  • 文件名以execute_,create_,update_,delete_开头的逻辑,会限定在一个事务中执行,事务支持嵌套。
  • 文件名以get_,find_,query_开头的逻辑,以只读方式执行,也就是说在这种逻辑中执行的写操作,最终都会被NAMI回滚。
  • 采用其他名称开头的,则认为每次执行db函数的exec,save等操作时事务自动提交。

资源

下载

下载运行版(百度云盘): http://pan.baidu.com/s/1bJmUtg

文档

在线文档:https://hyhcoder.gitbooks.io/namiapi/content/

系列文章

如何打包

用maven构建,根目录执行:

mvn clean install

打包结果在/package/target/nami-pack-<platform>.zip, platform = nojdk|win32|win64|linux32|linux64

关于我们

nami's People

Contributors

borball avatar hyhcoder avatar wodenwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nami's Issues

mvn install 失败

"C:\Program Files\Java\jdk1.8.0_112\bin\java" -Dmaven.multiModuleProjectDirectory=E:\githome\nami "-Dmaven.home=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.4\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.4\plugins\maven\lib\maven3\bin\m2.conf" -Didea.launcher.port=7535 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.4\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=2016.3.4 clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] NAMI Product
[INFO] NAMI Parent
[INFO] NAMI
[INFO] NAMI Package
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building NAMI Product 0.3.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ nami-product ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ nami-product ---
[INFO] Installing E:\githome\nami\pom.xml to C:\Users\xiaofei.m2\repository\cn\com\riversoft\nami-product\0.3.1-SNAPSHOT\nami-product-0.3.1-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building NAMI Parent 0.3.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ parent ---
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ parent ---
[INFO] Installing E:\githome\nami\parent\pom.xml to C:\Users\xiaofei.m2\repository\cn\com\riversoft\parent\0.3.1-SNAPSHOT\parent-0.3.1-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building NAMI 0.3.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://oss.sonatype.org/service/local/staging/deploy/maven2/com/aliyun/aliyun-java-sdk-core/2.4.2/aliyun-java-sdk-core-2.4.2.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] NAMI Product ....................................... SUCCESS [ 0.207 s]
[INFO] NAMI Parent ........................................ SUCCESS [ 0.211 s]
[INFO] NAMI ............................................... FAILURE [ 2.555 s]
[INFO] NAMI Package ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.069 s
[INFO] Finished at: 2017-05-02T09:59:32+08:00
[INFO] Final Memory: 15M/209M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project nami: Could not resolve dependencies for project cn.com.riversoft:nami:war:0.3.1-SNAPSHOT: Failed to collect dependencies at com.aliyun:aliyun-java-sdk-core:jar:2.4.2: Failed to read artifact descriptor for com.aliyun:aliyun-java-sdk-core:jar:2.4.2: Could not transfer artifact com.aliyun:aliyun-java-sdk-core:pom:2.4.2 from/to sonatype-nexus-staging (https://oss.sonatype.org/service/local/staging/deploy/maven2/): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :nami

Process finished with exit code 1
请问是什么原因造成的build失败啊,找不到原因。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.