欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot可視化接口開發(fā)工具magic-api的簡單使用教程

 更新時間:2021年06月17日 11:59:32   作者:夢想de星空  
作為Java后端開發(fā),平時開發(fā)API接口的時候經(jīng)常需要定義Controller、Service、Dao、Mapper、XML、VO等Java對象。有沒有什么辦法可以讓我們不寫這些代碼,直接操作數(shù)據(jù)庫生成API接口呢?今天給大家推薦一款工具magic-api,來幫我們實現(xiàn)這個小目標(biāo)!

magic-api簡介

magic-api是一個基于Java的接口快速開發(fā)框架,編寫接口將通過magic-api提供的UI界面完成,自動映射為HTTP接口,無需定義Controller、Service、Dao、Mapper、XML、VO等Java對象。

使用

下面我們來波實戰(zhàn),熟悉下使用magic-api來開發(fā)API接口。

在SpringBoot中使用

magic-api原生支持SpringBoot,可與SpringBoot無縫整合。

  • 首先在pom.xml中添加magic-api相關(guān)依賴;
<!--接口快速開發(fā)框架 magic-api-->
<dependency>
    <groupId>org.ssssssss</groupId>
    <artifactId>magic-api-spring-boot-starter</artifactId>
    <version>1.0.2</version>
</dependency>
  • 在配置文件application.yml中添加數(shù)據(jù)源及magic-api相關(guān)配置;
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/magic_api?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: root

magic-api:
  # 配置api管理頁面入口
  web: /magic/web
  # 配置存儲方式
  resource:
    # 配置接口資源存儲位置,可選file、database、redis
    type: database
    # 存儲表名
    tableName: magic_api_file
    # 使用database、redis存儲時的key前綴
    prefix: /magic-api
    # 是否是只讀模式
    readonly: false
  # 啟用駝峰命名轉(zhuǎn)換
  sql-column-case: camel
  # 分頁配置
  page-config:
    # 頁大小的請求參數(shù)名稱
    size: size
    # 頁碼的請求參數(shù)名稱
    page: page
    # 未傳頁碼時的默認(rèn)頁碼
    default-page: 1
    # 未傳頁大小時的默認(rèn)頁大小
    default-size: 10
  • 在MySQL中創(chuàng)建數(shù)據(jù)庫magic_api,由于我們配置了使用數(shù)據(jù)庫存儲接口資源,所以需要先創(chuàng)建magic_api_file表;
CREATE TABLE `magic_api_file`
(
  `id`           bigint(255) NOT NULL AUTO_INCREMENT,
  `file_path`    varchar(255) DEFAULT NULL,
  `file_content` text,
  PRIMARY KEY (`id`)
)
  • 再創(chuàng)建pms_brand表,用于測試;
CREATE TABLE `pms_brand` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `big_pic` varchar(255) DEFAULT NULL,
  `brand_story` varchar(255) DEFAULT NULL,
  `factory_status` bit(1) DEFAULT NULL,
  `first_letter` varchar(255) DEFAULT NULL,
  `logo` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `product_comment_count` int(11) DEFAULT NULL,
  `product_count` int(11) DEFAULT NULL,
  `show_status` bit(1) DEFAULT NULL,
  `sort` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4;
  • 最后啟動項目,訪問magic-api的UI界面,訪問地址:http://localhost:8080/magic/web

增刪改查

接下來我們將以商品品牌管理為例,體驗下使用magic-api開發(fā)接口的快感!使用magic-api開發(fā)API接口,僅需在界面中使用magic-script腳本即可。

  • 首先我們來寫個新增接口,先創(chuàng)建一個分組,然后在分組中創(chuàng)建一個新增接口,在編輯框中輸入如下腳本;
// 使用body對象可以直接獲取請求body中的參數(shù)
return db.table('pms_brand').insert(body);
  • 在底部的接口信息中進(jìn)行如下配置,POST請求,請求路徑為/create,請求參數(shù)放在請求body中;

  • 再來個根據(jù)ID查詢的接口,在編輯框中輸入如下腳本;
// 路徑變量從path對象中獲取
return db.table('pms_brand')
    .where()
    .eq('id',path.id)
    .selectOne();
  • 在底部的接口信息中進(jìn)行如下配置,GET請求,請求路徑為/detail/{id},請求參數(shù)放在路徑變量中;

  • 再來個修改的接口,在編輯框中輸入如下腳本;
return db.table('pms_brand').primary('id',body.id).update(body);
  • 在底部的接口信息中進(jìn)行如下配置,POST請求,請求路徑為/update,請求參數(shù)放在請求body中;

  • 再來個分頁查詢查詢的接口,在編輯框中輸入如下腳本;
return db.table('pms_brand').page();
  • 在底部的接口信息中進(jìn)行如下配置,GET請求,請求路徑為/page,請求參數(shù)放在請求參數(shù)中(由于已經(jīng)在application.yml中配置好了分頁參數(shù),可直接使用);

  • 再來個根據(jù)ID刪除的接口,在編輯框中輸入如下腳本,刪除只能使用update,這設(shè)計有點...
return db.update('delete from pms_brand where id=#{id}'); 
  • 在底部的接口信息中進(jìn)行如下配置,POST請求,請求路徑為/delete/{id},請求參數(shù)放在路徑變量中;

參數(shù)驗證

我們可以通過斷言模塊assert來進(jìn)行參數(shù)驗證。

  • 比如新增品牌的時候名稱和首字母不能為空,在編輯框中輸入如下腳本;
import assert;  //導(dǎo)入斷言模塊
//驗證不通過時,會終止運行
assert.notEmpty(body.name,400,'名稱不能為空!');
assert.notEmpty(body.firstLetter,400,'首字母不能為空!');
return db.table('pms_brand').insert(body);
  • 在底部的接口信息中進(jìn)行如下配置,POST請求,請求路徑為/test,請求參數(shù)放在請求body中;

  • 當(dāng)我們不添加name字段時,調(diào)用接口會返回我們自己定義的錯誤信息和狀態(tài)碼。

結(jié)果轉(zhuǎn)換

我們可以使用map方法對查詢數(shù)據(jù)進(jìn)行轉(zhuǎn)換,返回我們想要的數(shù)據(jù)。

  • 比如我們想將showStatus轉(zhuǎn)換為中文說明,并只返回三個需要的字段,在編輯框中輸入如下腳本;
var list = db.table('pms_brand').select();
return list.map((item)=>{
    name : item.name,
    firstLetter : item.firstLetter,
    showStatus : item.showStatus? '不顯示' : '顯示'
});
  • 訪問該接口,在執(zhí)行結(jié)果中可以發(fā)現(xiàn),返回結(jié)果已經(jīng)轉(zhuǎn)換。

使用事務(wù)

在我們使用Java開發(fā)接口的時候,少不了用到事務(wù),當(dāng)然magic-api也是支持事務(wù)的。使用db.transaction()方法即可,支持自動事務(wù)和手動事務(wù)。

  • 還是以修改品牌為例,先查詢是否存在,如果存在則更新;
import assert; 
var val = db.transaction(()=>{
    var exist = db.table('pms_brand').where().eq('id',body.id).selectOne();
    assert.notNull(exist,404,'找不到該品牌!');
    db.table('pms_brand').primary('id',body.id).update(body);
    return v2;
});
return val;
  • 在底部的接口信息中進(jìn)行如下配置,POST請求,請求路徑為/test,請求參數(shù)放在請求body中;

集成Swagger

寫了那么多接口,都是在magic-api的界面中進(jìn)行調(diào)試的。如果你習(xí)慣使用Swagger,magic-api也可以和Swagger進(jìn)行無縫整合。

  • 首先在pom.xml中添加Swagger相關(guān)依賴;
<dependencies>
    <!--Swagger-UI API文檔生產(chǎn)工具-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
</dependencies>
  • 在配置文件application.yml中添加Swagger相關(guān)配置;
magic-api:
  # 集成Swagger配置
  swagger-config:
    # 文檔名稱
    name: MagicAPI 測試接口
    # 文檔標(biāo)題
    title: MagicAPI Swagger Docs
    # 文檔描述
    description: MagicAPI 測試接口信息
    # 文檔版本號
    version: 1.0
    # 文檔資源位置
    location: /v2/api-docs/magic-api/swagger2.json
  • 訪問Swagger界面即可查看我們在magic-api中寫的接口了,訪問地址:http://localhost:8080/swagger-ui.html

總結(jié)

magic-api是個很有意思的框架,可以通過在UI界面中使用簡單的腳本,進(jìn)行API接口的開發(fā)。不過作為一款小眾框架,magic-api還有很長一段路要走!

參考資料

官方文檔:https://ssssssss.org/

項目源碼地址
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-magic-api

以上就是SpringBoot可視化接口開發(fā)工具magic-api的簡單使用教程的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot magic-api的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解讀CompletableFuture的底層原理

    解讀CompletableFuture的底層原理

    本文探討了Java8中CompletableFuture的原理和應(yīng)用,詳解其異步編程能力、工作機(jī)制及實際使用方法,CompletableFuture通過鏈?zhǔn)秸{(diào)用和狀態(tài)管理優(yōu)化異步任務(wù),提高Java應(yīng)用的效率和性能
    2024-09-09
  • java中File與MultipartFile互轉(zhuǎn)代碼示例

    java中File與MultipartFile互轉(zhuǎn)代碼示例

    在Java開發(fā)中,當(dāng)需要將本地File對象轉(zhuǎn)換為MultipartFile對象以處理文件上傳時,可以通過實現(xiàn)MultipartFile接口或使用CommonsMultipartFile類來實現(xiàn),本文提供了詳細(xì)的轉(zhuǎn)換方法和代碼示例,需要的朋友可以參考下
    2024-10-10
  • Springboot 集成 SocketIO的示例代碼

    Springboot 集成 SocketIO的示例代碼

    Socket.IO是實現(xiàn)瀏覽器與服務(wù)器之間實時、雙向和基于事件的通信的工具庫,本文主要介紹了Springboot 集成 SocketIO的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 詳細(xì)解讀Java編程中面向字符的輸入流

    詳細(xì)解讀Java編程中面向字符的輸入流

    這篇文章主要介紹了Java中面向字符的輸入和輸出流,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • 淺談JVM內(nèi)存溢出原因和解決思路

    淺談JVM內(nèi)存溢出原因和解決思路

    本文主要介紹了淺談JVM內(nèi)存溢出原因和解決思路,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法

    Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法

    本篇文章主要介紹了Spring Data JPA實現(xiàn)動態(tài)查詢的兩種方法,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • try-with-resource優(yōu)雅關(guān)閉io流的方法

    try-with-resource優(yōu)雅關(guān)閉io流的方法

    這篇文章主要給大家介紹了關(guān)于try-with-resource優(yōu)雅關(guān)閉io流的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java設(shè)計模式之訪問模式(Visitor者模式)介紹

    Java設(shè)計模式之訪問模式(Visitor者模式)介紹

    這篇文章主要介紹了Java設(shè)計模式之訪問模式(Visitor者模式)介紹,本文講解了為何使用Visitor模式、如何使用Visitor模式、使用Visitor模式的前提等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Java實戰(zhàn)在線選課系統(tǒng)的實現(xiàn)流程

    Java實戰(zhàn)在線選課系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個在線選課系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Java如何定義Long類型

    Java如何定義Long類型

    這篇文章主要介紹了Java如何定義Long類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論