API Platform是建立在Symfony组件之上的API-First项目的框架。让我们看看如何在短短5分钟内创建一个最小和轻巧的入门项目!
唯一的要求是安装Dev Containers extension的Docker Desktop,Visual Studio Code。
设置
下载Symfony Sail(免责声明,我是作者ð),它为Symfony提供了即时开发环境。
- 在目录中提取拉链
- 在该文件夹中创建一个空的
.env.local
- 启动Visual Studio代码,键入F1并选择 dev容器:重新打开容器
从现在开始,每个命令都必须在Visual Studio代码内置终端中运行,即容器本身内部。
让我们下载并安装 symfony骨架:
curl -O https://raw.githubusercontent.com/symfony/skeleton/6.2/composer.json
composer install
我们需要添加两个必需的库才能导航API平台文档:
composer require symfony/asset symfony/twig-pack
最后 API平台包:
composer require api-platform/core
您的API文档可在http://localhost/api/docsððð
上找到您的第一个资源
是时候添加第一个资源了!我们要验证输入数据和持续我们的资源。懒惰,我们还利用MakerBundle的优势:
不要执行Docker食谱,因为我们已经具有Docker配置!
composer require symfony/validator symfony/orm-pack symfony/maker-bundle
等一下,数据库呢?多亏了Symfony Sail,我们已经有一个运行的数据库实例为db:3306
。让我们在.env.local
文件中设置DATABASE_URL
:
DATABASE_URL="mysql://root:@db:3306/db_name?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
现在我们最终可以生成我们的第一个名为BlogPost
的资源:
php bin/console make:entity BlogPost --api-resource
使用向导,添加所需的title
字符长度的属性,然后修改App\Entity\BlogPost
如下:
<?php
namespace App\Entity;
// ...
use Symfony\Component\Validator\Constraints as Assert;
// ...
class BlogPost
{
// ...
// ...
#[Assert\NotBlank]
#[Assert\Length(max: 64)]
private ?string $title = null;
}
几乎完成了!生成迁移并执行它:
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate -n
完成! ð
使用http://localhost/api/docs上的API平台页面测试一个简单的帖子请求,具有简单的有效载荷,例如{ title: "My first blog post!" }
。
奖励:使用phpstan进行静态分析,并使用php_codesniffer保存时格式化? ðρ
简单:
做安装这些库的食谱。
composer require --dev phpstan/phpstan squizlabs/php_codesniffer