fusio / fusio
Fusio 项目
Requires
- php: >=8.1
- fusio/impl: ^8.0
- dev-master
- v5.1.5
- v5.1.4
- v5.1.3
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.0
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v4.0.0-RC6
- v4.0.0-RC5
- v4.0.0-RC4
- v4.0.0-RC3
- v4.0.0-RC2
- v4.0.0-RC1
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.1
- v3.1.0
- v3.0.0
- v3.0.0-RC2
- v3.0.0-RC1
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-RC2
- v2.0.0-RC1
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v1.0.0-RC8
- v1.0.0-RC7
- v1.0.0-RC6
- v1.0.0-RC5
- v1.0.0-RC4
- v1.0.0-RC3
- v1.0.0-RC2
- v1.0.0-RC1
- v0.9.9
- v0.9.8
- v0.9.7
- v0.9.6
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.0
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-dependabot/composer/twig/twig-3.14.0
This package is auto-updated.
Last update: 2024-09-10 18:10:48 UTC
README
关于
Fusio 是一个开源的 API 管理平台,帮助创建创新的 API 解决方案。
使用案例
- API 产品
Fusio 帮助您创建优秀的 API 产品,除了构建 API,它还提供了一个开发者门户,开发者可以在此注册,并提供了货币化您的 API 的方式。 - API 网关
Fusio 可以用作您的内部 API 和微服务的网关。它处理所有常见的功能,如授权、速率限制和模式验证。 - SPA 后端
Fusio 可以用作构建使用流行的 JavaScript 框架(如 Angular、React 或 Vue)的 SPAs 的后端。它提供了一个强大的代码生成器,可以自动为您的 API 生成 SDK。 - 低代码平台
Fusio 允许您在不具备编码知识的情况下构建 API 端点。例如,它提供了一个实体生成器,您可以使用它轻松创建完整的 CRUD API。 - API 框架
对于更复杂的用例,您还可以使用 Fusio 作为框架从头开始构建完整的 API。这意味着您将构建自定义操作,在其中您可以使用广泛的 PHP 生态系统来解决您的任务。
功能
Fusio 帮助您构建 API,提供开箱即用的企业级功能,以便您可以专注于您的业务案例。请查看我们的文档网站获取更多信息。以下功能列表为您提供了初步概述
- OpenAPI 生成
Fusio 会自动为定义的路由生成 OpenAPI 规范 - SDK 生成
Fusio 可以根据定义的模式自动生成 API 的客户端 SDK - Webhook 支持
Fusio 包含一个 webhook 系统,有助于构建 API 的发布/订阅 - 速率限制
Fusio 提供了一种根据用户或应用进行请求速率限制的方法 - 授权
Fusio 使用 OAuth2 进行 API 授权 - 货币化
Fusio 提供了一个简单的支付系统,可以对特定路由进行收费 - 验证
Fusio 使用 TypeSchema 自动验证传入的请求数据 - 分析
Fusio 监控所有 API 活动,并在仪表板上显示它们 - 用户管理
Fusio 提供了一个开发者应用程序,新用户可以通过 GitHub、Google、Facebook 或通过常规电子邮件注册登录或注册新帐户
应用程序
Fusio 提供了许多应用程序,有助于与 API 一起工作。大多数应用程序都是简单的 JS 应用程序,它们与 Fusio 的内部 API 一起工作。您可以在我们的市场中查看所有可用的应用程序列表。您可以通过 CLI 命令(例如 php bin/fusio marketplace:install fusio
)或通过后端应用程序安装此类应用程序。
所有应用程序都安装在apps/
文件夹中。您需要通过在.env
文件中定义APP_APPS_URL
变量来告诉Fusio应用程序文件夹的公共URL。根据您的配置,这可以是自定义子域,例如https://apps.acme.com
,或者简单地是子文件夹https://acme.com/apps
。
后端
后端应用程序是配置和管理您的API的主要应用程序。安装程序会自动安装此应用程序。应用程序位于/apps/fusio/
。
VSCode
Fusio提供了一个VSCode扩展,可用于简化动作开发。这意味着您可以直接在VSCode编辑器中开发每个动作。
SDK
为了构建和集成Fusio应用程序,我们提供了几个SDK,您可以使用它们与Fusio实例交互,或者也可以简单地手动与REST API通信。
框架
REST API
生态系统
Fusio是一个开源项目,您可以在Apache 2.0许可证的条款下免费用于私人项目和商业项目。除了我们的核心产品外,我们还提供其他服务来增强Fusio的功能。
- SDKgen
SDKgen是一个强大的代码生成器,可以自动为您的REST API构建客户端SDK。 - APIgen
根据您的数据模型生成完整且可定制的API。 - APImon
APImon提供了一个直观的服务来监控和分析API端点。 - TypeSchema
一种JSON格式,用于以语言无关的格式描述数据模型。 - TypeAPI
一个OpenAPI替代品,用于描述REST API以进行类型安全代码生成。 - TypeHub
一个协作平台,用于设计和构建API模型和客户端SDK。 - PSX
一个专注于构建完全类型化REST API的创新PHP框架。
安装
您可以通过composer或手动文件下载来安装Fusio。
Composer
composer create-project fusio/fusio
下载
https://github.com/apioo/fusio/releases
配置
您可以使用以下步骤手动安装Fusio,或者您也可以使用位于public/install.php
的基于浏览器的安装程序。请注意,出于安全原因,强烈建议在安装后删除安装脚本。
- 调整配置文件
在Fusio目录中打开文件.env
,将APP_URL
更改为指向公共文件夹的域名。还将数据库凭据插入到APP_CONNECTION
密钥中。可选地调整APP_APPS_URL
为应用程序文件夹的公共URL(如果您想使用应用程序)。 - 执行安装命令
安装脚本将Fusio数据库模式插入到提供的数据库中。可以使用以下命令执行:php bin/fusio migrate
。 - 创建管理员用户
安装完成后,您必须创建一个新的管理员账户。为此,您可以使用以下命令:php bin/fusio adduser
。选择账户类型为“管理员”。 - 安装后端应用程序
要通过管理面板管理您的API,您需要安装后端应用程序。可以使用以下命令安装应用程序:php bin/fusio marketplace:install fusio
。
您可以通过浏览器访问APP_URL
来验证安装。您应该看到一个API响应,表示安装成功。
如果您想将Fusio安装在特定的数据库上,您需要调整APP_CONNECTION
参数。您可以使用以下连接字符串:
- MySQL:
pdo-mysql://root:test1234@localhost/fusio
- PostgreSQL:
pdo-pgsql://postgres:postgres@localhost/fusio
- SQLite:
pdo-sqlite:///fusio.sqlite
通常情况下,可以在我们数据库抽象层支持的任何数据库上安装Fusio,但我们的内部测试案例仅覆盖MySQL、PostgreSQL和SQLite,因此不能保证所有功能都能正常工作。
Docker
可以通过Docker设置Fusio。这样做的好处是您可以自动获得一个完整的运行中的Fusio系统,无需配置。这对于测试和评估特别有用。要设置容器,您需要检查仓库并运行以下命令
docker-compose up -d
这将在预定义的后端账户下构建Fusio系统。凭证从docker-compose.yml
中的环境变量FUSIO_BACKEND_USER
、FUSIO_BACKEND_EMAIL
和FUSIO_BACKEND_PW
中获取。如果您打算将容器部署到互联网上,您必须更改这些凭证。
域名
默认情况下,整个Fusio项目可以托管在单个域名上。在这个配置中,您的API在根目录下提供服务,开发人员门户和后端应用程序直接从/apps文件夹提供服务。这种设置易于使用,因为它不需要配置。如果您想在生产环境中运行Fusio,我们建议创建以下子域结构
- api.acme.com
仅包含Fusio,您的API在这里提供服务,在这种情况下,您可以删除public/文件夹中的apps/文件夹 - developer.acme.com
包含开发人员门户应用程序,外部开发人员可以在此注册 - fusio.acme.com
可选的后端应用程序,您可以在此管理您的Fusio实例。您也可以将其托管在完全独立的内部域名上,后端应用程序只需要访问Fusio API。
这当然只是一个建议,您可以根据自己的喜好选择域名。
文档
请查看我们的官方文档网站,我们在这里整合了所有文档资源:https://docs.fusio-project.org/
支持
推广
如果您是博主或杂志,我们很高兴您愿意介绍Fusio。请查看关于页面的媒体部分以下载官方图标集。如果您有任何问题,请直接给我们留言,我们可以帮助您创建优质内容。
咨询
如果您是公司或自由职业者,并想了解如何使用Fusio的详细信息,您可以联系我们进行咨询。在研讨会中,我们试图找到最佳方法来使用/集成Fusio,同时我们也会解释其功能并回答您的问题。
捐赠
如果这个项目帮助您产生了收入,或者总的来说,如果您想支持该项目,请查看我们仓库中的捐赠选项。
合作伙伴
以下列表显示了Fusio项目的所有合作伙伴。我们感谢每一位支持我们实现将API开发提升到下一个层次的合作伙伴。如果您有兴趣在这里列出,请赞助我们的项目。