本文案例收錄在 https://github.com/chengxy-nd...
你們好,我是小富~html
今天介紹我正在用的一款高效敏捷開發工具magic-api
,順便分享一點工做中使用它的心得前端
先說一下我爲何會使用這個工具?java
最近新啓動一個項目,業務並不算複雜,那種典型的管理系統,產品要求支持全局頁面配置化,前端一切相關配置必須經過接口返回,好比:像查詢下拉框(啓用、禁用)這類簡單的條件,國際化,必須作到全動態配置。python
其實只要人手夠時間夠,這些都沒問題,但問題就在於立項到上線週期就給十幾天,而開發時間滿打滿算不到10來天,時間緊又不給加人,底層程序員的生活真是太難了。mysql
不過辦法總比困難多,前同事老哥給我推薦了這個工具,而後就真香了,哈哈~git
magic-api
是一個基於Java的接口快速開發框架,編寫接口將經過magic-api
提供的UI
界面完成,自動映射爲HTTP接口,無需定義Controller
、Service
、Dao
、Mapper
、XML
、VO
等Java對象便可完成常見的HTTP API接口開發。程序員
上邊是官方對工具的介紹,但好像仍是沒明白它是幹什麼的,接下來我們演示一下,你就會以爲它很哇塞了github
首先pom.xml
引入magic-api
核心包magic-api-spring-boot-starter
web
<dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>0.7.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
application.yml
配置更簡單,數據庫(沒數據庫操做能夠不寫)和magic-api
的基礎信息redis
magic-api: web: /magic/web # UI請求的界面以及UI服務地址 server: port: 9999 spring: datasource: driver-class-name: com.mysql.jdbc.Driver password: xinzhifu521 url: jdbc:mysql://47.93.6.5:3306/magic-api username: root
好了~ 到這環境就搭建完成!
在具體演示以前先吐槽一下用Java開發API的缺點,首當其衝的就是囉嗦,尤爲是在工期緊,功能需快速迭代的時候,既要嚴格執行開發規範,又不能耽誤工期,即使最簡單的一個API接口,也要寫對應的 Controller
、Service
、Dao
、Mapper
、DTO
、VO
等類,儘管這些基礎編碼有對應的代碼生成器,但維護起來仍是至關麻煩,magic-api
起到一個很好的輔助做用,少寫了不少代碼。
直接訪問http://127.0.0.1:9999/magic/web
打開magic-api
可視化界面,看到以下的界面。
建立一個分組,其中分組前綴
爲一組API接口的訪問根目錄,至關於@Controller("/order")
註解。
接着在分組中建立接口 order_detail
,頁面配置接口的基礎信息,接口名稱、請求路徑、請求方法、請求參數、請求header等,接口直接return
返回內容
return ‘小富最帥’
在頁面訪問剛剛建立接口的全路徑 http://127.0.0.1:9999/order/order_detail
,發現已經成功返回數據。
也能夠直接拼JSON
格式數據直接返回
若是URL傳參 /order_detail/{id}
,導入request
模塊獲取參數
import request; a = path.id
到這一個簡單的API接口就開發完了,而此時咱們還未在項目中寫一行代碼
但上邊只是靜態數據,在實際開發中每每要與數據庫打交道,magic-api
提供了一些相似於python
開發中的模塊化組件,例如引入import db
模塊,直接執行SQL
語句會返回JSON
格式數據,省略了不少中間步驟。magic-api
語法與Java
的差別不大,不過更加精簡了一些,只要寫過Java對它學習成本並不高,好比經常使用得for
循環,也會有普通和lambda
多種寫法。
var sum = 0; var list = [1,2,3,4,5]; for(val in list){ sum = sum + val; } list.each(it => sum+= it + 1)
這裏我只簡單的介紹了使用,還有不少高級特性,好比:調用Java API
、集成redis
、Mongo
等,感興趣的同窗本身看下官方文檔吧,它還提供了不少語法demo
,拿來即用就好。
地址:http://140.143.210.90:9999/magic/web/index.html
magic-api
在我整個項目趕工期的過程當中可謂是居功至偉,節省了一大半的開發時間,不只後端開發接口效率顯著提高,對前端聯調幫助也很大。
先後端從開始就定義好數據結構,後端快速提供靜態數據接口,前端用真實接口聯調,後端補充完業務邏輯後無縫替換成真實數據,這樣作到同步開發,前端也不用只寫僞代碼等接口聯調了。
magic-api
雖然能夠提升開發效率,可是實際應用中我也只敢把它用在一些邏輯相對簡單,偏配置類接口,再有就是爲前端快速提供靜態接口,核心業務仍是要按「規矩」辦事,畢竟系統穩定、安全才是最重要的。
整理了幾百本各種技術電子書,有須要的同窗公號[ 程序員內點事 ]內回覆[ 666 ]自取。技術羣快滿了,想進的同窗能夠加我好友,和大佬們一塊兒吹吹技術。