# 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/#/>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fireboom.io/zui-jia-shi-jian/fireboom-admin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
