# 什么是飞布？

## 飞布概述

飞布是“**开发体验优先**”的可视化API开发平台（IDE），传统模式下2天才能完成的接口，用飞布2分钟就能完成。前后端开发者都能使用飞布构建生产级WEB API。

飞布定位是：外包企业的秘密武器，程序员的开发利器（前端变全栈、后端不搬砖）！

飞布愿景是：极致开发体验，“飞速布署”应用。

<figure><img src="/files/mCzT1Z3n51VfXFJ53rij" alt=""><figcaption><p>飞布API构建页面</p></figcaption></figure>

如果你是后端，厌倦了做CRUD BOY的日子，希望快速成长并接受更有意义的挑战，使用飞布后，你将摆脱重复、低效的开发现状，有时间专注于更有价值的业务逻辑，实现人生更大的梦想。

如果你是前端，受够了找后端修改一个字段时的来回拉扯，使用飞布后，只需30分钟学习，你就能开发出比新手后端还要稳健的API接口，直接变全栈。

## 飞布不是什么？

尽管飞布具有低代码开发平台的所有优势，如可视化、低成本、高效率、稳定性等，但飞布与市面上的低代码平台完全不同。

<figure><img src="/files/zYdtER9i5t9Pt0GAdXf2" alt=""><figcaption><p>低代码开发优势</p></figcaption></figure>

> 自从前后端分离架构盛行以来，WEB应用分为前端和后端。WEB应用中，前端指的是：看得见的**页面**；后端指的是：给看得见的页面**提供数据**的，与**服务器**打交道的部分。
>
> 前端主要工作内容是，用CSS和H5复现UI稿，然后用js调用API获取数据，并绑定到页面上。后端的主要工作内容是，用后端开发语言处理数据构建API，并通过各种优化机制，如加缓存、负载均衡等保证服务稳定运行。此外，前后端分离以来，前后端需要进行接口联调，而该过程大量存在扯皮行为，前后端关系的破裂均由此产生。

目前国内市场上所有低代码平台均从前端切入，通过可视化拖拽构建应用，主要解决前端页面复现和数据绑定的问题，如基于国外开源项目appsmith的国产化低代码产品（卡拉云、码匠等）。尽管这些工具提供了简单的数据处理机制，如连接数据源写SQL等，但该方式不够灵活，遇到稍微复杂的逻辑就无法处理，只适用于中后台系统的开发，例如创建文章后发送一封邮件、从数据库查询设备列表时同时获取设备在线状态等很常见的用例。此外，这些工具无法实现APP或小程序等移动端产品的开发。我更倾向于称这些低代码平台为“<mark style="color:orange;">**前端低代码**</mark>”。

<figure><img src="/files/lkLsk1LmObtrio9PGXC4" alt=""><figcaption><p>appsmith 预览</p></figcaption></figure>

## 飞布是什么？

相对于“前端低代码”，飞布是“<mark style="color:orange;">**后端低代码**</mark>”。它从后端切入，专注于API开发，用界面封装了API开发的复杂性，通过配置和勾选即可生成生产级REST API，支持多种数据源，具备“PRO CODE”能力，且编程语言无关。

飞布本质上是中国版Hasura，但做了本土化改造。尽管飞布引擎底层基于GraphQL，但考虑到GraphQL的国内普及率较低，对外只暴露REST API，而不是GraphQL端点。

飞布用可视化界面封装了GraphQL细节，允许开发者通过勾选从“超图”中构建子集 Operation（查询、变更和订阅） 作为函数签名，并将其编译为 REST-API。这即充分利用了GraphQL按需取用、类型系统的优势，又免除了它无法复用HTTP基础设施以及不安全的弊端。

飞布还充分利用了GraphQL的指令系统，通过指令注解实现了API权限和数据权限的控制，入参校验，以及跨数据源关联！但用户无需刻意学习，因为飞布提供了友好的交互，封装了这些技术细节。

飞布提供了开箱即用的API缓存、实时推送和实时查询功能。通过服务端轮询，可以实现任意数据源的实时查询！

此外，飞布基于 HTTP 协议实现了 HOOKS 机制，方便开发者采用任何喜欢的语言实现自定义逻辑。同时，飞布内置了WebContainer，TypeScript开发者无需准备任何环境，即可进行nodejs钩子的开发。

飞布集成了众多行业规范，包括OIDC、S3存储、RBAC等！用户无需额外学习即可接入，快速完成业务需求。

最后，飞布还基于prisma设计了数据建模功能，实现开发流程的闭环。用户无需切换工具，即可完成数据建模和数据预览，且能跨数据库类型迁移表结构。

了解更多，前往查看飞布[工作原理](/kuai-su-ru-men/gong-zuo-yuan-li.md)

<figure><img src="/files/FlMgmiURNYGgGcsuWnwL" alt=""><figcaption><p>飞布核心模块概览</p></figcaption></figure>

飞布的核心功能如下：

* 数据管理：简化版[Navicat](https://navicat.com.cn/products#navicat)，主要包含数据库建模和数据预览功能
* API 构建：可视化构建API，包含API授权、实时API、跨源关联、数据缓存、N+1查询等高阶能力
* SDK生成：根据API实时生成客户端SDK，当前已支持REACT SDK，计划支持VUE SDK和Flutter SDK
* 文件存储：集成[S3规范](https://www.zhihu.com/question/343713732/answer/809092629)，实现文件管理，后续将支持钩子进行文件上传的后置处理
* ...

## 总结

飞布“<mark style="color:orange;">简单但不简单</mark>”。在上层足够简单，可视化界面封装了grapqhl细节，集成了数据库设计功能，用户无需刻意学习，即可上手开发；在底层不简单，飞布引擎增加了缓存机制、解决了N+1查询问题、创新性地支持服务端推送和跨数据源关联查询等功能；此外，飞布又足够灵活，其钩子机制支持自定义逻辑，能够适配“前端低代码”无法适配的场景。


---

# 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/readme-1/what-is-fireboom.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.
