0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java開(kāi)發(fā)API接口可以不用寫(xiě)Controller了!

jf_ro2CN3Fa ? 來(lái)源:程序員小富 ? 2023-08-10 10:51 ? 次閱讀

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可視化界面,看到如下的界面。

cda7a1b6-371f-11ee-9e74-dac502259ad0.png

創(chuàng)建一個(gè)分組,其中分組前綴為一組API接口的訪問(wèn)根目錄,相當(dāng)于@Controller("/order")注解。

cdc054a4-371f-11ee-9e74-dac502259ad0.png

接著在分組中創(chuàng)建接口 order_detail,頁(yè)面配置接口的基礎(chǔ)信息,接口名稱(chēng)、請(qǐng)求路徑、請(qǐng)求方法、請(qǐng)求參數(shù)、請(qǐng)求header等,接口直接return返回內(nèi)容

return‘小富最帥’
cdd09882-371f-11ee-9e74-dac502259ad0.png

在頁(yè)面訪問(wèn)剛剛創(chuàng)建接口的全路徑,發(fā)現(xiàn)已經(jīng)成功返回?cái)?shù)據(jù)。

cdf70288-371f-11ee-9e74-dac502259ad0.png

也可以直接拼JSON格式數(shù)據(jù)直接返回

ce17dbca-371f-11ee-9e74-dac502259ad0.png

如果URL傳參 /order_detail/{id},導(dǎo)入request模塊獲取參數(shù)

importrequest;
a=path.id

到這一個(gè)簡(jiǎn)單的API接口就開(kāi)發(fā)完了,而此時(shí)我們還未在項(xiàng)目中寫(xiě)一行代碼

ce3a66ae-371f-11ee-9e74-dac502259ad0.png

但上邊只是靜態(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ù),省略了很多中間步驟。

ce634952-371f-11ee-9e74-dac502259ad0.png

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)定、安全才是最重要的。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    44

    文章

    3555

    瀏覽量

    133805
  • URL
    URL
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    15273
  • JAVA語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20056
  • XML技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    6004
  • API接口
    +關(guān)注

    關(guān)注

    1

    文章

    81

    瀏覽量

    10415

原文標(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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    java學(xué)習(xí)方法

    ;,DOC文檔就是答案. 對(duì)某些知識(shí)點(diǎn)有疑惑是,寫(xiě)代碼測(cè)試一下,會(huì)給你留下深刻的印象. 而有的問(wèn)題,你可能需要直接看API的源代碼驗(yàn)證你的想法. 萬(wàn)不得已才去請(qǐng)教別人.作為一個(gè)開(kāi)發(fā)人員,懂得使用搜索引擎來(lái)尋找
    發(fā)表于 09-27 14:51

    請(qǐng)問(wèn)生產(chǎn)線是用CCS來(lái)燒寫(xiě)芯片,不用寫(xiě)程序,也不用編譯的功能,是不是用免費(fèi)版的CCS就可以

    如果我自己編程我是需要購(gòu)買(mǎi)正版CCS編譯器的,但是我想問(wèn)的是我產(chǎn)品設(shè)計(jì)好了以后,芯片的燒寫(xiě)是放在生產(chǎn)線上燒寫(xiě)的,請(qǐng)問(wèn)生產(chǎn)線是用CCS來(lái)燒寫(xiě)芯片,不用
    發(fā)表于 11-01 16:18

    HarmonyOS應(yīng)用開(kāi)發(fā)-API參考

    API 是指以二進(jìn)制方式,函式庫(kù) (DLL) 直接開(kāi)放的應(yīng)用程式開(kāi)發(fā)接口 (Application Programming Interface),可以直接由 C/C++ 來(lái)呼叫存取使
    發(fā)表于 09-22 15:14

    基于JAVA的ICQ系統(tǒng)的源代碼

    基于JAVA的ICQ系統(tǒng) 服務(wù)器與客戶間通過(guò)套接口Socket(TCP)連接。在java中使用套接口相當(dāng)簡(jiǎn)單,Java
    發(fā)表于 03-10 13:39 ?13次下載

    高手總結(jié)java常用API(免費(fèi)下載)

    高手總結(jié)java常用API(免費(fèi)下載)。
    發(fā)表于 11-06 11:27 ?0次下載

    接口、內(nèi)部類(lèi)和Java API基礎(chǔ)

    理解接口的作用,理解接口和實(shí)現(xiàn)接口的類(lèi)的關(guān)系,掌握聲明接口、一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口的聲明和使用方法。理解內(nèi)嵌類(lèi)型的概念,掌握聲明內(nèi)部類(lèi)的方法。熟
    發(fā)表于 11-23 11:52 ?0次下載

    使用Java API技巧分析

    本文介紹一些關(guān)于Java API安全和性能方面的簡(jiǎn)單易用的技巧,其中包括保證API Key安全和開(kāi)發(fā)Web Service方面中在框架方面
    發(fā)表于 09-27 14:09 ?3次下載

    如何寫(xiě)一個(gè)會(huì)講笑話的Python程序

    笑話從哪里來(lái)?自己寫(xiě)肯定是不現(xiàn)實(shí)的。在這個(gè)“云”的時(shí)代,各種云都有,自然是不缺開(kāi)放API的。下面寫(xiě)一個(gè)用Python寫(xiě)的例子,其實(shí)不止python語(yǔ)言,同樣提供
    的頭像 發(fā)表于 01-11 16:47 ?3023次閱讀
    如何<b class='flag-5'>寫(xiě)</b>一個(gè)會(huì)講笑話的Python程序

    java可以用作那些領(lǐng)域?

    1、學(xué)習(xí)Java可以做網(wǎng)站 Java可以用來(lái)編寫(xiě)網(wǎng)站,現(xiàn)在很多大型網(wǎng)站都用Jsp寫(xiě)的,JSP全名J
    的頭像 發(fā)表于 02-15 14:07 ?2742次閱讀

    學(xué)習(xí)java開(kāi)發(fā)可以做什么工作

    在現(xiàn)實(shí)生活中,大多數(shù)人選擇java開(kāi)發(fā)這個(gè)行業(yè)都是看好java的發(fā)展前景,那么java學(xué)好了之后可以做些什么呢?有哪些工作方向?下面為大家總
    的頭像 發(fā)表于 02-17 13:41 ?4039次閱讀

    基于Java接口快速開(kāi)發(fā)框架

    映射為HTTP接口,無(wú)需定義Controller、Service、Dao、Mapper、XML、VO等Java對(duì)象即可完成常見(jiàn)的HTTP API接口
    的頭像 發(fā)表于 09-10 09:36 ?3668次閱讀

    Controller層代碼就該這么寫(xiě)

    邏輯 說(shuō)到 Controller,相信大家都不陌生,它可以很方便地對(duì)外提供數(shù)據(jù)接口。它的定位,我認(rèn)為是「不可或缺的配角」。 說(shuō)它不可或缺是因?yàn)闊o(wú)論是傳統(tǒng)的三層架構(gòu)還是現(xiàn)在的 COLA 架構(gòu)
    的頭像 發(fā)表于 11-21 10:28 ?835次閱讀

    Mybatis Plus或者其他框架及FluentMybatis提供哪些便利呢?

    使用fluent mybatis可以不用寫(xiě)具體的xml文件,通過(guò)java api可以構(gòu)造出比較復(fù)
    的頭像 發(fā)表于 02-03 15:16 ?741次閱讀

    api接口怎么使用

    本文就從API接口的維度,淺析API的概念以及為什么要了解它 一、API的概念 API,官方定義為應(yīng)用程序編程
    的頭像 發(fā)表于 05-24 14:44 ?1353次閱讀

    基于Java接口快速開(kāi)發(fā)框架——magic-api

    magic-api 是一個(gè)基于Java接口快速開(kāi)發(fā)框架,編寫(xiě)接口將通過(guò)magic-api提供的
    發(fā)表于 07-19 11:42 ?841次閱讀
    基于<b class='flag-5'>Java</b>的<b class='flag-5'>接口</b>快速<b class='flag-5'>開(kāi)發(fā)</b>框架——magic-<b class='flag-5'>api</b>