# tinyWeb **Repository Path**: wikiness/tiny-web ## Basic Information - **Project Name**: tinyWeb - **Description**: 一个简单的精简的springboot低代码项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-06-20 - **Last Updated**: 2026-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tinyWeb Spring Boot + Magic-API + amis 低代码 Web 平台。 通过 Magic-API 动态接口引擎和 amis 低代码前端框架,实现"零代码/低代码"快速搭建业务页面和接口,同时通过 Sa-Token 提供细粒度权限控制。 ## 环境要求 - JDK 1.8+ - Maven 3.x - 无需额外安装数据库(SQLite 文件数据库随项目提供) ## 快速开始 ```bash # 克隆项目 git clone https://gitee.com/wikiness/tiny-web.git cd tiny-web # 构建 mvn clean package # 运行(开发模式) mvn spring-boot:run # 或运行打包后的 JAR java -jar target/tinyWeb.jar ``` 启动后访问 `http://localhost:18080/tiny/` 默认账号 `admin`,密码 `admin123` ## 关键 URL | 功能 | URL | 备注 | |---|---|---| | 应用首页 | `http://localhost:18080/tiny/index` | — | | 登录页 | `http://localhost:18080/tiny/login` | 默认账号 admin / admin123 | | Magic-API 编辑器 | `http://localhost:18080/tiny/magic` | 需要 admin 角色 | | amis 页面查看 | `http://localhost:18080/tiny/amis/view/{id}` | — | | amis 页面编辑 | `http://localhost:18080/tiny/amis/editor/{id}` | — | ## 配置说明 所有配置均在 `src/main/resources/application.yaml` 中修改。 ### 端口与路径 ```yaml server: port: 18080 servlet: context-path: /tinyWeb ``` ### 数据库 默认使用 SQLite,连接池 Druid,已开启 WAL 模式以支持读写并发: ```yaml spring: datasource: url: jdbc:sqlite:./tinyWeb.db type: com.alibaba.druid.pool.DruidDataSource druid: connection-init-sqls: - PRAGMA journal_mode=WAL - PRAGMA synchronous=NORMAL - PRAGMA busy_timeout=5000 - PRAGMA foreign_keys=ON max-active: 5 validation-query: SELECT 1 ``` 切换 MySQL 只需修改数据源配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: your_password ``` ### 调试工具 默认关闭,启用后可在线管理 Magic-API 脚本: ```yaml debug: util: enabled: true # 生产环境请保持 false ``` ## 技术栈 | 层面 | 技术 | 版本 | |---|---|---| | 后端框架 | Spring Boot | 2.7.18 | | 接口引擎 | Magic-API | 2.2.2 | | 权限框架 | Sa-Token | 1.44.0 | | 数据库 | SQLite(默认)/ MySQL | — | | 连接池 | Druid | 1.2.25 | | 模板引擎 | Thymeleaf | — | | 前端渲染 | 百度 amis SDK | JSON 驱动的低代码前端框架 | | 工具库 | Hutool | 5.8.16 | ## 核心特性 ### 动态接口 — Magic-API 接口脚本存储在数据库 `magic_api_file` 表中,通过 `/magic` 编辑器在线编写和调试,无需重启服务。 ### 动态页面 — amis 页面 JSON 存储在数据库 `amis_page` 表中,通过 `page_type` 区分用途(菜单、页面、错误页等),运行时动态渲染。 ### 动态鉴权 — Sa-Token 从数据库和 Magic-API 接口元数据动态构建鉴权路由,新增 `page_type=3` 的页面会自动纳入权限体系。 ### 页面上下文变量(`_user` / `_roles`) view 和 editor 入口自动将当前用户和角色信息注入到 amis 页面数据域,变量以 `_` 开头与业务数据区分,支持 `visibleOn`/`disabledOn`/`hiddenOn` 等表达式直接引用实现按钮级权限控制。 ```json { "label": "删除", "visibleOn": "${_roles.includes('admin')}" } ``` ### Context-Path 自动适配 amis 渲染模板内置了 `fetcher`/`jumpTo`/`updateLocation` 拦截,所有 API 请求和页面跳转自动适配 `server.servlet.context-path` 配置,页面 JSON 中无需手动拼接路径前缀。 ## 项目结构 ``` tinyWeb/ ├── src/main/java/com/zh/nyh/ │ ├── config/ # 配置类(鉴权、拦截器、异常处理、方言适配) │ ├── controller/ # 页面路由与 API 端点 │ ├── debug/ # 调试工具(默认关闭) │ └── vo/ # 值对象 ├── src/main/resources/ │ ├── application.yaml # 应用配置 │ ├── templates/amis/ # Thymeleaf 模板(amis 页面渲染与编辑器) │ └── static/ # 静态资源(amis SDK、Demo 页面) ├── tinyWeb.db # SQLite 数据库(含 amis 页面定义与 Magic-API 脚本) ├── fword/ # amis-editor-demo 独立子项目(勿修改) └── pom.xml ``` ## 数据库核心表 | 表名 | 说明 | |---|---| | `sys_user` | 用户表 | | `sys_role` | 角色表 | | `amis_page` | amis 页面定义 | | `magic_api_file` | Magic-API 接口脚本 | ## 许可证 [MIT](LICENSE)