# 什么是飞布？

## 飞布概述

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

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

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

<figure><img src="https://2707494476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNx22Cp3wzkuW1siRbMwW%2Fuploads%2Fgit-blob-27ac7ebfd2230bb9efc0546751f1a1e45d65cd8e%2Fimage%20(8)%20(2)%20(1).png?alt=media" alt=""><figcaption><p>飞布API构建页面</p></figcaption></figure>

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

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

## 飞布不是什么？

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

<figure><img src="https://2707494476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNx22Cp3wzkuW1siRbMwW%2Fuploads%2Fgit-blob-88dac7d767e710d6e588b9c6d5e19906014b4de5%2Fimage%20(19)%20(1).png?alt=media" 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="https://2707494476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNx22Cp3wzkuW1siRbMwW%2Fuploads%2Fgit-blob-2b4a0e4ae992a8c80ea074bcd3a6d6d4dfe1461a%2Fimage%20(9)%20(1)%20(1).png?alt=media" 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设计了数据建模功能，实现开发流程的闭环。用户无需切换工具，即可完成数据建模和数据预览，且能跨数据库类型迁移表结构。

了解更多，前往查看飞布[gong-zuo-yuan-li](https://docs.fireboom.io/kuai-su-ru-men/gong-zuo-yuan-li "mention")

<figure><img src="https://2707494476-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNx22Cp3wzkuW1siRbMwW%2Fuploads%2Fgit-blob-8b5c1aa2dfacba6ac8c222fca31d4dfc0f391ac0%2Fimage%20(22).png?alt=media" 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查询问题、创新性地支持服务端推送和跨数据源关联查询等功能；此外，飞布又足够灵活，其钩子机制支持自定义逻辑，能够适配“前端低代码”无法适配的场景。
