# Amis Admin

## amis-admin 介绍

市面上有很多管理后台，为什么还要做 **amis-admin** 呢？若不是其独一无二的特点，我们断然不会班门弄斧。

**amis-admin** 最大的特点是：**融合可视化 API 接口开发**和**可视化拖拽界面**，目标是快速开发中后台系统。

* TA 基于 [Fireboom](https://www.fireboom.cloud) 和 [百度 amis](https://github.com/baidu/amis) 构建，既可以快速构建 API，也可以拖拽生成页面，
* TA 适用于网站管理后台、CMS、CRM、OA 等中后台系统开发。当然，你也可以对TA深度定制。
* TA 是学习了解进而玩转 Fireboom 的最佳实践。

<figure><img src="https://2707494476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNx22Cp3wzkuW1siRbMwW%2Fuploads%2FJ348BN7mQ718Hr383ZXM%2Fimage.png?alt=media&#x26;token=b957607f-85ff-42f0-948f-84eda86260b1" alt=""><figcaption></figcaption></figure>

### 特性 Feature

* 内置适合管理后台使用的 OIDC 服务
* 常用的用户、角色、菜单、API管理和关联操作
* 快速的 API 构建，快速的页面拖拽生成

### 框架优势

**相对于传统后台管理框架**：**amis-admin** 不仅能可视化构建后台接口，同时还能可视化拖拽构建界面。对于中后台场景的增删改查业务，不需要编写一行代码。

**相对于拖拽构建界面的低代码**：**amis-admin** 不仅能可视化开发 API ，且能用任意后端语言编写钩子（NodeJS、Golang等），实现任意复杂的业务逻辑。此外，对于 amis 无法完成的复杂页面交互，TA 还支持前端 PRO CODE 开发。

> 该项目基于 golang 钩子实现，希望社区能贡献其他语言的实现\~

此外， **amis-admin** 具备 Fireboom 的所有优势：

* OIDC身份验证和RBAC角色鉴权，能够实现复杂的权限控制，包括数据权限和接口权限。
* 内置类似 **navicate** 的数据库管理界面，可以进行数据库级别的**数据管理**和**数据建模**。

## 技术栈

### 必备技能

**后端**

* [Fireboom 可视化 API 开发工具](https://www.fireboom.cloud) >2.0
* 钩子 Golang > 1.20（待实现其他语言，如 NodeJS ）
* Mysql 数据库

**前端**

前端项目采用:

* node > 18
* pnpm > 8
* React
* `Ant Design` + `Ant Pro components`
* `amis`
* `Vite`

主要功能：登录、退出、用户名头像修改、密码重置以及权限管理。

* 简单业务需求，在前端通过 `amis-studio` 开发，并配置路由即可访问
* 复杂业务需求，自行编写代码实现

### Fireboom

**Fireboom** 是一个可视化的WEB API开发平台，前后端开发者都能使用。

![FIREBOOM 快速操作](https://camo.githubusercontent.com/404bbcf5eae02b87d4f30a28b8ba114f833c296736930891b7a88d7cb3ee2a23/68747470733a2f2f7777772e66697265626f6f6d2e636c6f75642f5f6e6578742f696d6167653f75726c3d2532465f6e6578742532467374617469632532466d6564696125324676697375616c697a6174696f6e2e32623331353730662e67696626773d37353026713d3735)

使用它即可以快速开发增删改查接口，也可以编写钩子代码完成复杂业务逻辑，进而缩减项目交付时间，让后端开发者从重复工作中解放出来，专注于更有价值的业务逻辑。同时，前端开发者也能快速上手，变身全栈开发。

Fireboom官网：<https://www.fireboom.cloud>

### 百度 amis

**amis** 是一个低代码前端框架，它使用 **JSON** 配置来生成页面，可以减少页面开发工作量，提升页面开发效率。非常适合管理后台这样的固定的、一致的、重复的场景。

AMIS 官网：<https://baidu.github.io/amis>

### YuDai oidc 服务

**YuDai OIDC** 是 Fireboom 团队另一个精简版开源 OIDC 项目，它提供了基础的 OIDC 功能，包括：用户名密码登录、手机号+验证码登录、微信登录等功能。

**YuDai OIDC**在本项目中作为 Fireboom 的 [REST API](https://docs.fireboom.io/ji-chu-ke-shi-hua-kai-fa/shu-ju-yuan/rest-api) 数据源，经过 Fireboom 代理后，暴露给前端。但，如果你想直接暴露该服务也是可行的，但 nginx 要额外配置。

> \[!NOTE]\
> 该服务的数据库即可以和业务数据库放在一起，也可以分开。对中后台项目应尽量降低复杂性，推荐放在一起，方便数据互通。

仓库地址：<https://github.com/fireboomio/yudai-oidc>

## 项目地址

{% embed url="<https://github.com/fireboomio/amis-admin>" %}

在线示例：

* Fireboom控制台入口：<http://test.fireboom.cloud/console/>
* Admin后台入口：<http://test.fireboom.cloud/#/>
