
前言
使用SpringBoot開發(fā)項目,經(jīng)常性會進行需求變更。每次數(shù)據(jù)庫增加一個字段都至少需要對DAO、mapper文件進行修改,調(diào)試無誤后發(fā)布部署。今天給大家介紹一款可視化編程工具,在UI界面中就可以完成這些操作,省去這些煩惱。
magic-api框架
添加依賴
<dependency>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
其它SpringBoot依賴大家自行添加。
application.yml配置
server:
port: 9999
# 配置靜態(tài)資源啟用 gzip 壓縮
compression:
enabled: true
min-response-size: 128
# 配置主數(shù)據(jù)源
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
datasource:
url: jdbc:mysql://127.0.0.1/magic?useSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
username: root
password: 123456
magic-api:
web: /magic/web
resource:
type: database # 配置接口存儲方式,這里選擇存在數(shù)據(jù)庫中
table-name: magic_api_file # 數(shù)據(jù)庫中的表名
prefix: /magic-api # 前綴
創(chuàng)建數(shù)據(jù)庫表
CREATE TABLE `magic_api_file` (
`file_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`file_content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
PRIMARY KEY (`file_path`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
就這么簡單,下面開始啟動。

控制臺打印出上面的信息,說明啟動成功。
體驗
根據(jù)控制臺信息,打開地址:

說明:
- 區(qū)域1定義接口,定義接口分組,自定義函數(shù)
- 區(qū)域2接口運行、保存、上傳、導出、推送
- 區(qū)域3SQL腳本開發(fā)
- 區(qū)域4多數(shù)據(jù)源配置
- 區(qū)域5接口參數(shù)配置,日志信息,調(diào)試信息
編寫一個接口
首先創(chuàng)建一個數(shù)據(jù)庫數(shù)據(jù)表。
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`age` int(11) NULL DEFAULT NULL,
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
操作參考下圖:

執(zhí)行結(jié)果:


數(shù)據(jù)庫中會存入數(shù)據(jù),界面也會返回執(zhí)行結(jié)果信息以及日志等。
CRUD實現(xiàn)
查詢數(shù)據(jù):
return db.select("select * from user where id ='"+id+"'")

更新數(shù)據(jù):
return db.table("user").primary("id").update({id:body.id,name:body.name,age:body.age,address:body.address})

刪除數(shù)據(jù):
return db.update("delete from user where id ='"+id+"'")

分頁查詢:
return db.page("""
select * from user
""", limit, offset)// 跳過前offset條查limit條


請求參數(shù)說明
URL參數(shù)
http://172.31.251.11:9999/user/select?id=16。
這樣的表單參數(shù)magic-api 也會自動將id映射為同名變量。
Request Body參數(shù)
對于RequestBody magic-api會將整個請求體映射為body變量,如:
{
"name": "九天銀河聊編程",
"age": 35,
"address": "北京"
}
如要獲取name屬性 則可通過 body.name 來獲取,如果提交的body為數(shù)組或者List, 支持遍歷。
Path參數(shù)獲取
主要是針對URL定義為http://localhost:9999/user/{id} 的類似接口,如要獲取path路徑上的id可通過path.id 或 id來獲取。
對于請求時使用了http://localhost:9999/user/1?id=2的請求, id變量的值將是RequestParam中的值,此時可以通過path.id 來避免沖突。
Cookie參數(shù)獲取
magic-api 會對所有Cookie統(tǒng)一封裝為一個名為cookie的對象。 如要獲取 JSESSIONID 可以通過cookie.JSESSIONID 來獲取。
Session參數(shù)獲取
magic-api 會將HttpSession封裝為一個名為session的變量 要獲取session中的值,可以通過session.xxx來獲取。
還有很多需要去學習摸索,今天就寫這么多吧。