platformsh / api-platform
Platform.sh 的 API-Platform v2 模板
This package is not auto-updated.
Last update: 2024-09-13 04:39:23 UTC
README
在 Platform.sh 上部署 API Platform API 和 API Platform admin (ReactJS)
贡献、请求功能或查看我们的资源
加入我们的社区 文档 博客 报告错误 请求功能
关于
我们为您创建了一个基于 API Platform 组件 和 API Platform Admin 的新多应用项目。
生成的代码已针对在 Platform.sh 上托管的标准 Web 应用进行了优化。
特性
- PHP 8.1
- PostgreSQL v13
- 基于 Composer 的构建
- Yarn v1.22.15
- NodeJS v16
- 一个示例 Greeting 实体
入门
快速开始
克隆 GitHub 仓库并将其内容推送到您的 Platform.sh 项目
git clone git@github.com:platformsh-templates/API-Platform-v2.git
cd API-Platform-v2/
git remote add platform [project-id]@git.[region].platform.sh:[project-id].git
git push platform main
现在您可以访问 Platform.sh 提供的 admin
URL 并享受使用。
在 Platform.sh 上部署此模板的最快方式是点击下面的按钮。这将自动为您创建一个新的项目并初始化仓库。
注意
Platform.sh 模板优先考虑上游发布版本,而不是我们自己的版本。尽管如此,我们仍然定期独立于这些上游更新模板依赖项。
因此,模板仓库不包含发布。这可能会在未来改变,但在此之前,使用composer create-project
需要使用-s dev
标志。
其他部署选项
对于以下所有其他选项,首先克隆此仓库
git clone https://github.com/platformsh-templates/API-Platform-v2.git
如果您尝试从GitHub部署,您可以在自己的命名空间中首先生成此仓库的副本,方法是点击页面顶部的使用此模板按钮。
然后您可以使用以下命令在本地克隆其副本:git clone git@github.com:YOUR_NAMESPACE/API-Platform-v2.git
。
直接从命令行部署到Platform.sh
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
设置项目远程
运行
platform project:list
命令以找到您的PROJECT_ID
。+---------------+------------------------------------+------------------+---------------------------------+ | ID | Title | Region | Organization | +---------------+------------------------------------+------------------+---------------------------------+ | PROJECT_ID | Your Project Name | xx-5.platform.sh | your-username | +---------------+------------------------------------+------------------+---------------------------------+
然后,在您的本地副本内部,运行命令
platform project:set-remote PROJECT_ID
。 -
推送
git push platform DEFAULT_BRANCH
与GitHub仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与您在
https://YOUR_NAMESPACE/nextjs-drupal
上设置的相匹配。 -
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
设置集成
请参阅GitHub集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitHub上创建访问令牌。
与GitLab仓库集成并部署合并请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
创建仓库
在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。
-
设置集成
请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitLab上创建访问令牌。
与Bitbucket仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
创建仓库
在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。
-
设置集成
请参阅Bitbucket集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在Bitbucket上创建访问令牌。
本地开发
本节提供有关在连接到本地数据库实例的情况下本地运行API Platform
模板的说明。
在所有使用Platform.sh进行开发的情况下,重要的是要在隔离的环境中开发 - 不要在本地开发时连接到生产环境中的数据。
以下所有选项都假设您已经将此模板部署到Platform.sh,以及以下起始命令
$ platform get PROJECT_ID
$ cd project-name
$ platform environment:branch new_branch
API Platform:使用Symfony Server
通常,步骤如下-
如果您还没有获取Platform项目,请运行
git clone git@github.com:platformsh-templates/api-platform-api-admin.git api-platform
(如果您已经创建了分支,则为您的仓库) -
cd ./api-platform
-
使用以下步骤启动API组件
-
cd ./api
-
启动数据库的Docker容器:
docker-compose up -d
-
使用symfony composer安装
-
检查您的api/.env文件是否包含有效的
DATABASE_URL
,以便让Symfony连接到您的数据库 -
symfony console doctrine:schema:create --dump-sql
(更改为选项--force
以运行这些SQL请求) -
symfony server:start -d
-
就这样,您可以通过
<由symfony server start命令生成的URL>/api
来显示swagger界面,显示Offer和Product CRUD选项
-
注意:如果symfony server没有使用默认端口8000启动您的应用程序,请相应地更改
REACT_APP_PUBLIC_URL
,在./admin/.env
文件中
-
按照以下步骤启动管理组件
-
cd ../admin
(假设您位于./api
文件夹中) -
yarn install
-
yarn start
-
就这样,一个新浏览器标签会在url http://localhost:3000 中打开
-
注意:对于上述许多步骤,如果您不在项目目录中或环境与现有拉取请求相关联,您可能需要包含CLI标志
-p 项目ID
和-e 环境ID
部署到Platform.sh
此存储库包含所有部署到Platform.sh所需的代码。
直接从命令行部署到Platform.sh
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
设置项目远程
运行
platform project:list
命令以找到您的PROJECT_ID
。+---------------+------------------------------------+------------------+---------------------------------+ | ID | Title | Region | Organization | +---------------+------------------------------------+------------------+---------------------------------+ | PROJECT_ID | Your Project Name | xx-5.platform.sh | your-username | +---------------+------------------------------------+------------------+---------------------------------+
然后,在您的本地副本内部,运行命令
platform project:set-remote PROJECT_ID
。 -
使用git推送
git push platform DEFAULT_BRANCH
-
或使用platform推送
platform push
与GitHub仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与您在
https://YOUR_NAMESPACE/nextjs-drupal
上设置的相匹配。 -
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
设置集成
请参阅GitHub集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitHub上创建访问令牌。
与GitLab仓库集成并部署合并请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
创建仓库
在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。
-
设置集成
请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitLab上创建访问令牌。
与Bitbucket仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。
-
安装Platform.sh CLI
Linux/OSX
curl -sS https://platform.sh/cli/installer | php
Windows
curl -f https://platform.sh/cli/installer -o cli-installer.php php cli-installer.php
您可以通过登录(
platformsh login
)并列出您的项目(platform project:list
)来验证安装。 -
创建仓库
在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。
-
设置集成
请参阅Bitbucket集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在Bitbucket上创建访问令牌。
迁移您的数据
如果您将现有站点迁移到Platform.sh,那么除了代码外,您还需要迁移您的数据。这意味着您的数据库和文件。
导入数据库
首先,从您当前的站点获取数据库转储,并将您的转储文件保存为database.sql
。然后,使用CLI将数据库导入到您的Platform.sh站点。
platform sql -e main < database.sql
导入文件
您首先需要从您当前的主机环境下载您的文件。最简单的方法可能是使用rsync,但请查阅您旧主机的文档。
platform mount:upload
命令提供了一个简单的方法,可以将整个目录一次性上传到您在.platform.app.yaml
文件中定义的mount
。在底层,它使用SSH隧道和rsync,因此尽可能高效。(还有platform mount:download
命令,您可以使用它稍后下载文件。)从您的本地Git仓库根目录运行以下命令(如果需要,请修改--source
路径,并将BRANCH_NAME
设置为您正在使用的分支)。
以下列出了几个示例,但重复所有包含您要迁移的数据的目录。
$ platform mount:upload -e main --mount web/sites/default/files --source ./web/sites/default/files $ platform mount:upload -e main --mount private --source ./private
请注意,rsync
对尾部斜杠很挑剔,所以请确保包含它们。
现在您的应用程序已部署到Platform.sh,事情变得更加有趣。运行项目中的platform environment:branch new-feature
命令,或从当前分支打开一个简单的拉取请求。
生成的环境是生产环境的精确副本。它包含与配置文件中定义的相同的基础设施,甚至还包含从生产环境复制到其服务的服务中的数据。在这个隔离的环境中,您可以自由地对应用程序进行任何更改,并真正测试它们在生产环境中的行为。
之后,这里有一些额外的资源,您在继续迁移到Platform.sh时可能会发现它们很有趣。
学习
故障排除
访问日志
环境部署完成后,您可以使用CLI调查启动、deploy
和post_deploy
钩子以及通常在运行时发生的问题。运行以下命令:
platform ssh
如果您在项目本地副本之外运行命令,则需要包括 -p
(项目)和/或 -e
(环境)标志。连接到容器后,日志 将在 /var/log/
中可用,以便您进行调查。
重建缓存
您在首次在生产环境中安装 Symfony 后可能会遇到数据库错误。为了修复,通过 SSH 连接到应用程序容器(platform ssh
)并使用 Symfony 控制台重建缓存。
php bin/console cache:clear php bin/console cache:pool:clear cache.redis
Blackfire.io:创建持续可观察策略
此模板包含一个起始的 .blackfire.yml
文件,可用于在您的项目中启用 应用程序性能监控、分析、构建 和 性能测试。Platform.sh 预先在应用程序容器上安装了 Blackfire,并且 设置仅需最小配置。
- 什么是 Blackfire?
- 在 Platform.sh 项目上配置 Blackfire.io
- Blackfire.io Platform.sh 文档
- 分析食谱
- 监控食谱
- 测试食谱
- 使用构建
- 配置集成
资源
联系
此模板由 Platform.sh 开发者关系团队维护,他们将会收到您在此处打开的所有问题和拉取请求的通知。
- 社区:与社区分享您的问题,或者查看它是否已经在我们的 社区站点 上被提出。
- Slack:如果您还没有这样做,您可以通过 Platform.sh 的 公共 Slack 频道加入,并通过
@devrel_team
提出任何问题。
关于 Platform.sh
此模板已被特别设计用于在 Platform.sh 上部署。
什么是 Platform.sh?
Platform.sh 是一个统一、安全、企业级平台,用于构建、运行和扩展 Web 应用程序。我们在舰队操作方面处于领先地位:从一开始,您就可以从管理您的网站和应用程序的舰队中获取所需的一切。由于基础设施和工作流程从一开始就得到处理,应用程序就可以正常工作,因此团队能够专注于真正重要的事情:更快地进行更改、自信地协作和负责任地扩展。无论您管理的是十个还是十个网站的网站和应用程序,Platform.sh 都是开发人员首选的解决方案,可以轻松扩展。
我们的关键特性包括
-
GitOps:Git 作为真相之源
每个分支都成为开发环境,没有任何更改可以在不提交的情况下进行。
-
内置电池:托管基础设施
YAML 中的简单抽象 用于 提交和配置基础设施、完全托管的补丁更新和 24 运行时 及 服务,只需一行代码即可添加。
-
即时克隆:分支、合并、重复
可重用构建 和自动继承的生产数据提供真正的预发布环境 - 在隔离中实验、测试,然后销毁或合并。
-
FleetOps:船队管理平台
想了解更多信息,请查看下面的演示,并访问我们的网站。
贡献
帮助我们保持高质量的模板!
我们所有的模板都是开源的,对于第一次部署到Platform.sh或更好地了解该平台的人来说,它们是重要的资源。它们不仅是入门指南,还包含了一些在处理某些语言和框架时非常有用的提示和最佳实践。
发现这个模板有什么需要修复的错误吗?文档中有什么不清楚或遗漏的地方?请告诉我们!
需要帮助?
向Platform.sh社区提问 加入我们的Slack频道