platformsh/api-platform

Platform.sh 的 API-Platform v2 模板

安装: 2

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

语言:JavaScript

类型:项目

dev-main 2023-03-30 07:31 UTC

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)

贡献、请求功能或查看我们的资源

加入我们的社区       文档       博客       报告错误       请求功能

Open issues    Open PRs   

Deploy on Platform.sh

内容

关于       入门       迁移       学习       贡献      

关于

我们为您创建了一个基于 API Platform 组件API Platform Admin 的新多应用项目。
生成的代码已针对在 Platform.sh 上托管的标准 Web 应用进行了优化。

特性

  • PHP 8.1
  • PostgreSQL v13
  • 基于 Composer 的构建
  • Yarn v1.22.15
  • NodeJS v16
  • 一个示例 Greeting 实体

入门

快速开始

Deploy on Platform.sh

创建一个 Platform.sh 项目.

克隆 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
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 设置项目远程

    运行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

  4. 推送

    git push platform DEFAULT_BRANCH
与GitHub仓库集成并部署拉取请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与您在https://YOUR_NAMESPACE/nextjs-drupal上设置的相匹配。

  2. 安装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)来验证安装。

  3. 设置集成

    请参阅GitHub集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitHub上创建访问令牌。

与GitLab仓库集成并部署合并请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 创建仓库

    在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。

  4. 设置集成

    请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitLab上创建访问令牌。

与Bitbucket仓库集成并部署拉取请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 创建仓库

    在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。

  4. 设置集成

    请参阅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通常,步骤如下
  1. 如果您还没有获取Platform项目,请运行git clone git@github.com:platformsh-templates/api-platform-api-admin.git api-platform(如果您已经创建了分支,则为您的仓库)

  2. cd ./api-platform

  3. 使用以下步骤启动API组件

    1. cd ./api

    2. 安装Symfony CLI

    3. 启动数据库的Docker容器: docker-compose up -d

    4. 使用symfony composer安装

    5. 检查您的api/.env文件是否包含有效的DATABASE_URL,以便让Symfony连接到您的数据库

    6. symfony console doctrine:schema:create --dump-sql (更改为选项--force以运行这些SQL请求)

    7. symfony server:start -d

    8. 就这样,您可以通过<由symfony server start命令生成的URL>/api来显示swagger界面,显示Offer和Product CRUD选项

注意:如果symfony server没有使用默认端口8000启动您的应用程序,请相应地更改REACT_APP_PUBLIC_URL,在./admin/.env文件中

  1. 按照以下步骤启动管理组件

    1. cd ../admin (假设您位于./api文件夹中)

    2. yarn install

    3. yarn start

    4. 就这样,一个新浏览器标签会在url http://localhost:3000 中打开

注意:对于上述许多步骤,如果您不在项目目录中或环境与现有拉取请求相关联,您可能需要包含CLI标志-p 项目ID-e 环境ID

部署到Platform.sh

此存储库包含所有部署到Platform.sh所需的代码。

直接从命令行部署到Platform.sh
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 设置项目远程

    运行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

  4. 使用git推送

    git push platform DEFAULT_BRANCH
  5. 或使用platform推送

    platform push
与GitHub仓库集成并部署拉取请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与您在https://YOUR_NAMESPACE/nextjs-drupal上设置的相匹配。

  2. 安装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)来验证安装。

  3. 设置集成

    请参阅GitHub集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitHub上创建访问令牌。

与GitLab仓库集成并部署合并请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 创建仓库

    在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。

  4. 设置集成

    请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目的连接。为此,您需要在GitLab上创建访问令牌。

与Bitbucket仓库集成并部署拉取请求
  1. 创建免费试用

    在Platform.sh上注册30天免费试用。注册完成后,选择从头开始创建项目选项。给您的项目起个名字,并选择您希望部署的区域。至于生产环境选项,请确保它与此仓库的设置匹配,或者与您在本地更新默认分支的设置相匹配。

  2. 安装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)来验证安装。

  3. 创建仓库

    在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将推送至默认分支。

  4. 设置集成

    请参阅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调查启动、deploypost_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,并且 设置仅需最小配置

资源

联系

此模板由 Platform.sh 开发者关系团队维护,他们将会收到您在此处打开的所有问题和拉取请求的通知。

  • 社区:与社区分享您的问题,或者查看它是否已经在我们的 社区站点 上被提出。
  • Slack:如果您还没有这样做,您可以通过 Platform.sh 的 公共 Slack 频道加入,并通过 @devrel_team 提出任何问题。

关于 Platform.sh

此模板已被特别设计用于在 Platform.sh 上部署。

什么是 Platform.sh?

Platform.sh 是一个统一、安全、企业级平台,用于构建、运行和扩展 Web 应用程序。我们在舰队操作方面处于领先地位:从一开始,您就可以从管理您的网站和应用程序的舰队中获取所需的一切。由于基础设施和工作流程从一开始就得到处理,应用程序就可以正常工作,因此团队能够专注于真正重要的事情:更快地进行更改、自信地协作和负责任地扩展。无论您管理的是十个还是十个网站的网站和应用程序,Platform.sh 都是开发人员首选的解决方案,可以轻松扩展。

我们的关键特性包括

  • GitOps:Git 作为真相之源

    每个分支都成为开发环境,没有任何更改可以在不提交的情况下进行。

  • 内置电池:托管基础设施

    YAML 中的简单抽象 用于 提交和配置基础设施、完全托管的补丁更新和 24 运行时服务,只需一行代码即可添加。

  • 即时克隆:分支、合并、重复

    可重用构建 和自动继承的生产数据提供真正的预发布环境 - 在隔离中实验、测试,然后销毁或合并。

  • FleetOps:船队管理平台

    利用我们的公共API以及自定义工具如源操作活动脚本来管理数千个应用程序——它们的依赖更新、新内容和上游代码。

想了解更多信息,请查看下面的演示,并访问我们的网站


The Platform.sh demo

贡献

帮助我们保持高质量的模板!

我们所有的模板都是开源的,对于第一次部署到Platform.sh或更好地了解该平台的人来说,它们是重要的资源。它们不仅是入门指南,还包含了一些在处理某些语言和框架时非常有用的提示和最佳实践。

发现这个模板有什么需要修复的错误吗?文档中有什么不清楚或遗漏的地方?请告诉我们!

如何贡献

报告一个错误       提交一个功能请求       打开一个拉取请求      


需要帮助?

向Platform.sh社区提问       加入我们的Slack频道      


感谢所有了不起的贡献者!


contrib.rocks制作