自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們一起聊聊不寫一行代碼通過UI界面配置HTTP接口

開發(fā) 前端
本篇文章將介紹一個(gè)非常優(yōu)秀的快速開發(fā)框架magic-api。magic-api是一個(gè)基于Java的接口快速開發(fā)框架,它極大地簡化了HTTP API接口的開發(fā)過程。

環(huán)境:SpringBoot2.7.18

1. 簡介

本篇文章將介紹一個(gè)非常優(yōu)秀的快速開發(fā)框架magic-api。magic-api是一個(gè)基于Java的接口快速開發(fā)框架,它極大地簡化了HTTP API接口的開發(fā)過程。它具備以下特性:

  • 支持MySQL、MariaDB、Oracle、DB2、PostgreSQL、SQLServer 等支持jdbc規(guī)范的數(shù)據(jù)庫
  • 支持非關(guān)系型數(shù)據(jù)庫Redis、Mongodb
  • 支持集群部署、接口自動(dòng)同步
  • 支持分頁查詢以及自定義分頁查詢
  • 支持多數(shù)據(jù)源配置,支持在線配置數(shù)據(jù)源
  • 支持SQL緩存,以及自定義SQL緩存
  • 支持自定義JSON結(jié)果、自定義分頁結(jié)果
  • 支持對(duì)接口權(quán)限配置、攔截器等功能
  • 支持運(yùn)行時(shí)動(dòng)態(tài)修改數(shù)據(jù)源
  • 基于magic-script腳本引擎,動(dòng)態(tài)編譯,無需重啟,實(shí)時(shí)發(fā)布
  • 支持?jǐn)?shù)據(jù)庫事務(wù)、SQL支持拼接,占位符,判斷等語法
  • 支持腳本代碼自動(dòng)提示、參數(shù)提示、懸浮提示、錯(cuò)誤提示
  • 支持導(dǎo)入Spring中的Bean、Java中的類
  • 支持自定義工具類、自定義模塊包、自定義類型擴(kuò)展、自定義方言、自定義列名轉(zhuǎn)換等自定義操作

magic-api非常適用于需要快速開發(fā)大量HTTP API接口的場景,如企業(yè)級(jí)應(yīng)用開發(fā)、微服務(wù)架構(gòu)中的接口開發(fā)等。通過magic-api,開發(fā)者可以極大地提高開發(fā)效率,降低開發(fā)成本。

2. 環(huán)境準(zhǔn)備

2.1 引入依賴

<dependency>
  <groupId>org.ssssssss</groupId>
  <artifactId>magic-api-spring-boot-starter</artifactId>
  <version>2.1.1</version>
</dependency>

目前最新版本2.1.1。有1年多沒有更新了。

2.2 簡單配置

magic-api:
  web: /mc-api

設(shè)置Web UI訪問路徑,如上配置后訪問如下

圖片圖片

接下來就可以通過該界面配置各種HTTP API接口了。

3. 實(shí)戰(zhàn)案例

接下來將詳細(xì)的介紹magic-api所支持的各種模塊查詢功能。

3.1 數(shù)據(jù)源管理

兩種方式使用數(shù)據(jù)源,一種是在項(xiàng)目中自己配置數(shù)據(jù)源,還有一種是直接通過UI界面配置數(shù)據(jù)源。

項(xiàng)目配置數(shù)據(jù)源

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testjpa?serverTimeznotallow=GMT%2B8&useSSL=false&characterEncoding=UTF-8
    username: root
    password: xxxooo
    type: com.zaxxer.hikari.HikariDataSource

接下來就可以在UI中進(jìn)行配置接口

圖片圖片

如上配置后,你就可以直接通過接口地址進(jìn)行訪問了。

圖片圖片

通過UI配置數(shù)據(jù)源。

圖片圖片

注意這里的Key屬性,接下來編寫接口時(shí)會(huì)使用這個(gè)Key。

配置接口

圖片圖片

這里數(shù)據(jù)源的訪問:db.mydb

3.2 分頁查詢

通常不會(huì)將一個(gè)表的所有數(shù)據(jù)都查詢出來,實(shí)際都會(huì)進(jìn)行分頁查詢,列也不一定都需要,所以我們這里可以分頁及設(shè)置需要查詢的列。

圖片圖片

這里分別指定要查詢的列及分頁情況,你也可以不指定查詢的分頁碼。

return db.mydb.table('big_table').columns("uid", "name", "age", "sex").page()

這時(shí)候我們請(qǐng)求接口時(shí)可以動(dòng)態(tài)的指定查詢分頁參數(shù)信息。

圖片圖片

3.3 添加數(shù)據(jù)

圖片

測試接口

圖片

成功添加

3.4 通過SQL操作

圖片

直接編寫SQL語句進(jìn)行查詢數(shù)據(jù),而這里分頁無需配置,只需要在調(diào)用該接口時(shí)傳入?yún)?shù)即可。

圖片圖片

3.5 使用MyBatis語法

目前支持一下關(guān)鍵字:<if>、<elseif>、<else>、<where>、<foreach>、<trim>、<set>。

示例:

var sql = """
    select * from big_table
  <where>
        <if test="name != null and name != ''">
         and name like concat('%',#{name},'%')
        </if>
    </where>
"""
return db.mydb.page(sql)

圖片圖片

查詢示例

圖片圖片

3.6 HTTP接口調(diào)用

http模塊是基于RestTemplate封裝而來,目前只做了少量的封裝。對(duì)于一些通用的配置可以使用自定義RestTemplate來實(shí)現(xiàn)。

示例

import http;
return http.connect('http://localhost:8001/users/info')
    .get()
    .getBody()

接口配置

圖片圖片

3.7 Redis數(shù)據(jù)查詢

先引入相應(yīng)的依賴

<dependency>
  <groupId>org.ssssssss</groupId>
  <artifactId>magic-api-plugin-redis</artifactId>
  <version>2.1.1</version>
</dependency>

其實(shí)你也可以不用它的這個(gè)依賴,它這依賴就干了一事,引入spring-boot-starter-data-redis。

配置

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: xxxooo
    database: 3

以上配置完后就可以通過UI進(jìn)行Redis相關(guān)的操作了

圖片圖片

這里你還可以指定動(dòng)態(tài)參數(shù);

import redis;
return redis.setex('pack:name', 600, name)

調(diào)用接口傳遞name參數(shù);

圖片

圖片

數(shù)據(jù)成功添加到Redis中。

3.8 執(zhí)行Java代碼

注入Spring Bean對(duì)象

// 定義Bean對(duì)象
@Service
public class UserService {
  
  public List<String> list() {
    return Arrays.asList("a", "b", "c", "d") ;
  }
}

運(yùn)行結(jié)果

圖片圖片

調(diào)用普通Java代碼。

import 'java.util.Date' as Date;
import 'java.text.SimpleDateFormat' as SimpleDateFormat;
var now = new Date();
var df = new SimpleDateFormat('yyyy-MM-dd');
return df.format(now);

你也可以調(diào)用靜態(tài)方法

import xxx.StringUtils;
return StringUtils.isBlank("") ;

以上僅僅是介紹了一丁點(diǎn)功能,magic-api還支持其它非常豐富的功能。具體查看對(duì)應(yīng)的文檔。

責(zé)任編輯:武曉燕 來源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2024-08-01 08:45:17

2024-11-27 08:47:12

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2023-11-29 09:04:00

前端接口

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷開發(fā)模式

2025-04-08 00:16:07

2023-07-18 07:56:20

2023-03-29 08:26:06

2022-02-14 07:03:31

網(wǎng)站安全MFA

2022-06-26 09:40:55

Django框架服務(wù)

2022-01-04 12:08:46

設(shè)計(jì)接口

2022-10-28 07:27:17

Netty異步Future

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2022-04-06 08:23:57

指針函數(shù)代碼

2023-12-28 09:55:08

隊(duì)列數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)