IT资讯 Rocket-API 的前世今生

timmy · 2020-11-21 19:30:05 · 热度: 6

Rocket-API 的前世今生
大家好,我是一名资深搬砖工程师,常常忙碌于增查删改中,无法自拔。

我曾:

经历过APIJSON的暧昧

经历过GraphQL的诱惑

经历过DataWay的熏陶

后得大师点醒,为什么不直接搞SQL呢

为什么不直接搞SQL呢…
为什么不直接搞SQL呢…
为什么不直接搞SQL呢…

这来自灵魂的三大暴击,一下子打动了我

那就搞一个? 那就搞一个!

https://gitee.com/alenfive/rocket-api

第一版本

画了个页面,可以在里面写SQL,有点像BI系统,写SQL生成报表。只不过这里的输入是http请求的参数,输出的是数据库查询结果,将SQL保存到数据库里,就像这样:

  1. 配置一下请求方式
  2. 配置一下访问路径
  3. 再写个SQL

Rocket-API 的前世今生

select * from user where id = #{id}

好了,一个接口就这样搞定,保存,试一下 (话外音:这不是一门正经的语言,不用重启)

curl http://localhost:8080/test/fast?id=2

 

[
	{
		"phone": "15828865111",
		"createTime": "2020-05-29 15:44:23",
		"name": "更新",
		"updateTime": "2020-06-24 15:43:06",
		"id": 2
	}
]

第二版本

后来又得大师提点,说,唉,数据不用处理的吗,虽然CURD简单,但,还是有点逻辑的好吧。

刚好,JDK1.8有个新成员 ScriptEngineManager 脚本引擎,他跟Javascript,Python,Ruby,Groovy等等很多语言都有扯不清的关系。挑了一位里面最好的一门语言 “Groovy”(是世界上最好的语言),来解析数据处理逻辑

好了,现在有数据,有逻辑了:

Rocket-API 的前世今生

sql = """sql
select * from user where id = #{id}
"""
user = db.findOne(sql)

user.name = "我是杀手"

return user

保存,再试一下(话外音:Groovy是一门正经的语言,同时也是一门动态编译语言,所以依然不用重启):

curl http://localhost:8080/test/fast?id=2

 

{
	"phone": "15828865111",
	"createTime": "2020-05-29 15:44:23",
	"name": "我是杀手",
	"updateTime": "2020-06-24 15:43:06",
	"id": 2
}

第三版本

后来又得大师提点,说,springboot 是人们的挚爱亲朋,虽然你长得不错,但又有谁会舍得她呢,我虽然常常CURD,但偶尔也有复杂需求的啊,IDEA这么好,复杂的需求,我可是会寸步难行的

有道理!

那能否做到互不影响,相互独立,又能一起共事呢,我知道,他这是想脚踏两只船了,好在springboot 还很开放,早有心里准备

        <dependency>
            <groupId>com.github.alenfive</groupId>
            <artifactId>rocket-api-boot-starter</artifactId>
            <version>2.2.3.RELEASE</version>
        </dependency>

Rocket-API 的前世今生

https://gitee.com/alenfive/rocket-api

文章转载自 OSCHINA 社区 [http://www.oschina.net]

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册