magic-api: Java 后端开发者的福音,接口开发利器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
javaxd
V2EX    分享创造

magic-api: Java 后端开发者的福音,接口开发利器

  •  1
     
  •   javaxd 2020-11-16 09:40:02 +08:00 3423 次点击
    这是一个创建于 1868 天前的主题,其中的信息可能已经有所发展或是发生改变。

    magic-api 介绍

    magic-api 是一个基于 Java 的接口快速开发框架,将通过 magic-api 提供的 UI 界面完成编写接口,自动映射为 HTTP 接口,无需定义 Controller 、Service 、Dao 、Mapper 、XML 、VO 等 Java 对象即可完成常见的 HTTP API 接口开发

    magic-api 并不是代替传统的开发,即可以与传统的接口开发共存,也可以单独使用

    magic-api 可以做什么?

    • 报表、看板、多统计查询场景
    • 业务逻辑相对简单、需快速开发迭代
    • 将数据库、服务等多个结果集聚合处理

    magic-api 有哪些功能?

    • 支持 MySQL 、MariaDB 、Oracle 、DB2 、PostgreSQL 、SQLServer 等多种数据库
    • 支持非关系型数据库 Redis 、Mongodb
    • 支持分页查询以及自定义分页查询
    • 支持多数据源配置,支持运行时动态添加数据源
    • 支持 SQL 缓存,以及自定义 SQL 缓存
    • 支持自定义 JSON 结果、自定义分页结果
    • 支持对接口权限配置、拦截器等功能
    • 支持运行时动态修改数据源
    • 支持 Swagger 接口文档生成
    • 基于magic-script脚本引擎,动态编译,无需重启,实时发布
    • 支持数据库事务、SQL 支持拼接,占位符,判断等语法
    • 支持文件上传、下载、输出图片
    • 支持脚本历史版本对比与恢复
    • 支持脚本代码自动提示、错误提示
    • 支持导入 Spring 中的 Bean 、Java 中的类
    • 支持在线调试脚本引擎
    • 支持自定义工具类、自定义模块包、自定义类型扩展

    快速集成

    maven 引入

    <!-- 以 spring-boot-starter 的方式引用 --> <dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>0.4.6</version> </dependency> 

    创建数据库表

    执行 Github 或 Gitee 仓库中的 SQL 语句:db/magic-api.sql,具体链接在文章末尾。

    配置 SpringBoot

    server.port=9999 #配置 web 页面入口 magic-api.web=/magic/web #以下配置需跟实际情况修改 spring.datasource.url=jdbc:mysql://localhost/test spring.datasource.username=root spring.datasource.password=123456789 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

    启动项目

    启动项目之后,在访问 http://localhost:9999/magic/web 即可以看到接口配置页面 配置页面

    创建一个接口

    分页测试

    保存之后访问页面测试(访问第 2 页,每页 5 条):

    测试结果

    其它 Demo 就不一一列举了,SQL 脚本中内置了很多 Demo,可以下载自行查看,也可以访问演示地址

    总结

    通过以上简单的配置就可以实现一个接口,相比传统方式极大的简化了开发,这也正是本项目的初衷以及目的。如果大家在使用过程中有什么问题、疑问、建议可以在评论区、Github 、Gitee 上提 Issue,也欢迎加 QQ 交流群来讨论。

    5 条回复    2020-11-16 16:23:14 +08:00
    lori01
        2
    lori01  
       2020-11-16 11:22:27 +08:00
    收藏
    wysnylc
        3
    wysnylc  
       2020-11-16 11:32:55 +08:00
    请问有没有 JsonApi 好用
    javaxd
        4
    javaxd  
    OP
       2020-11-16 11:46:15 +08:00
    @wysnylc APIJSON 吗?我个人是不喜欢那种风格的。定位也不一样
    yuhangch
        5
    yuhangch  
       2020-11-16 16:23:14 +08:00
    包名离谱哈哈哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2664 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 893ms UTC 08:04 PVG 16:04 LAX 00:04 JFK 03:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86