magic-api 是一個(gè)基于Java的接口快速開(kāi)發(fā)框架,編寫(xiě)接口將通過(guò)magic-api提供的UI界面完成,自動(dòng)映射為HTTP接口,無(wú)需定義Controller、Service、Dao、Mapper、XML、VO等Java對(duì)象即可完成常見(jiàn)的HTTP API接口開(kāi)發(fā)。
上邊是官方對(duì)工具的介紹,但好像還是沒(méi)明白它是干什么的,接下來(lái)咱們演示一下,你就會(huì)覺(jué)得它很哇塞 了
環(huán)境
首先pom.xml 引入magic-api核心包magic-api-spring-boot-starter
org.ssssssss magic-api-spring-boot-starter 0.7.1 mysql mysql-connector-java runtime
application.yml 配置更簡(jiǎn)單,數(shù)據(jù)庫(kù)(沒(méi)數(shù)據(jù)庫(kù)操作可以不寫(xiě))和magic-api的基礎(chǔ)信息
magic-api: web:/magic/web#UI請(qǐng)求的界面以及UI服務(wù)地址 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
好了~ 到這環(huán)境就搭建完成!
在具體演示之前先吐槽一下用Java開(kāi)發(fā)API的缺點(diǎn),首當(dāng)其沖的就是啰嗦,尤其是在工期緊,功能需快速迭代的時(shí)候,既要嚴(yán)格執(zhí)行開(kāi)發(fā)規(guī)范,又不能耽誤工期,即便最簡(jiǎn)單的一個(gè)API接口,也要寫(xiě)對(duì)應(yīng)的 Controller、Service、Dao、Mapper、DTO、VO等類(lèi),盡管這些基礎(chǔ)編碼有對(duì)應(yīng)的代碼生成器,但維護(hù)起來(lái)還是相當(dāng)麻煩,magic-api起到一個(gè)很好的輔助作用,少寫(xiě)了很多代碼。
實(shí)踐
直接打開(kāi)magic-api可視化界面,看到如下的界面。
創(chuàng)建一個(gè)分組,其中分組前綴為一組API接口的訪問(wèn)根目錄,相當(dāng)于@Controller("/order")注解。
接著在分組中創(chuàng)建接口 order_detail,頁(yè)面配置接口的基礎(chǔ)信息,接口名稱(chēng)、請(qǐng)求路徑、請(qǐng)求方法、請(qǐng)求參數(shù)、請(qǐng)求header等,接口直接return返回內(nèi)容
return‘小富最帥’
在頁(yè)面訪問(wèn)剛剛創(chuàng)建接口的全路徑,發(fā)現(xiàn)已經(jīng)成功返回?cái)?shù)據(jù)。
也可以直接拼JSON格式數(shù)據(jù)直接返回
如果URL傳參 /order_detail/{id},導(dǎo)入request模塊獲取參數(shù)
importrequest; a=path.id
到這一個(gè)簡(jiǎn)單的API接口就開(kāi)發(fā)完了,而此時(shí)我們還未在項(xiàng)目中寫(xiě)一行代碼
但上邊只是靜態(tài)數(shù)據(jù),在實(shí)際開(kāi)發(fā)中往往要與數(shù)據(jù)庫(kù)打交道,magic-api提供了一些類(lèi)似于python開(kāi)發(fā)中的模塊化組件,例如引入import db 模塊,直接執(zhí)行SQL語(yǔ)句會(huì)返回JSON格式數(shù)據(jù),省略了很多中間步驟。
magic-api語(yǔ)法與Java的差異不大,不過(guò)更加精簡(jiǎn)了一些,只要寫(xiě)過(guò)Java對(duì)它學(xué)習(xí)成本并不高,比如常用得for循環(huán),也會(huì)有普通和lambda多種寫(xiě)法。
varsum=0; varlist=[1,2,3,4,5]; for(valinlist){ sum=sum+val; } list.each(it=>sum+=it+1)
這里我只簡(jiǎn)單的介紹了使用,還有很多高級(jí)特性,比如:調(diào)用Java API、集成redis、Mongo等,感興趣的同學(xué)自己看下官方文檔吧,它還提供了很多語(yǔ)法demo,拿來(lái)即用就好。
心得
magic-api在我整個(gè)項(xiàng)目趕工期的過(guò)程中可謂是居功至偉,節(jié)省了一大半的開(kāi)發(fā)時(shí)間,不僅后端開(kāi)發(fā)接口效率顯著提升,對(duì)前端聯(lián)調(diào)幫助也很大。
前后端從開(kāi)始就定義好數(shù)據(jù)結(jié)構(gòu),后端快速提供靜態(tài)數(shù)據(jù)接口,前端用真實(shí)接口聯(lián)調(diào),后端補(bǔ)充完業(yè)務(wù)邏輯后無(wú)縫替換成真實(shí)數(shù)據(jù),這樣做到同步開(kāi)發(fā),前端也不用只寫(xiě)偽代碼等接口聯(lián)調(diào)了。
magic-api雖然可以提高開(kāi)發(fā)效率,但是實(shí)際應(yīng)用中我也只敢把它用在一些邏輯相對(duì)簡(jiǎn)單,偏配置類(lèi)接口,核心業(yè)務(wù)還是要按“規(guī)矩 ”辦事,畢竟系統(tǒng)穩(wěn)定、安全才是最重要的。
審核編輯:劉清
-
編碼器
+關(guān)注
關(guān)注
45文章
3643瀏覽量
134531 -
URL
+關(guān)注
關(guān)注
0文章
139瀏覽量
15342 -
JAVA語(yǔ)言
+關(guān)注
關(guān)注
0文章
138瀏覽量
20095 -
XML技術(shù)
+關(guān)注
關(guān)注
0文章
15瀏覽量
6011 -
API接口
+關(guān)注
關(guān)注
1文章
84瀏覽量
10438
原文標(biāo)題:萬(wàn)萬(wàn)沒(méi)想到,Java開(kāi)發(fā) API 接口可以不用寫(xiě) Controller了!
文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論