prsw / typeapi-bundle
为 Symfony 实现的 TypeApi
dev-main
2024-09-29 13:25 UTC
Requires
- php: >=8.1
- psx/api: ^7.1
- symfony/framework-bundle: ^6.4|^7.0
- symfony/serializer: ^7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^11.3
This package is auto-updated.
Last update: 2024-09-29 13:25:44 UTC
README
安装
请确保已全局安装 Composer,具体请参阅 Composer 文档中的 安装章节。
使用 Symfony Flex 的应用程序
打开命令行,进入您的项目目录并执行
$ composer require prsw/typeapi-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载 Bundle
打开命令行,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本
$ composer require prsw/typeapi-bundle
步骤 2:启用 Bundle
然后,通过将其添加到项目 config/bundles.php
文件中注册的 Bundle 列表来启用该 Bundle。
// config/bundles.php return [ // ... PRSW\TypeApiBundle\TypeApiBundle::class => ['all' => true], ];
用法
在 config/routes.yml
中添加 TypeApi 路由
typeapi: resource: path: . type: typeapi
现在您可以使用 TypeApi 属性在类中定义您的 API 定义,您必须将 TypeApi
属性添加到类中,以便在 symfony 路由中自动加载它们。
<?php declare(strict_types=1); namespace App\Api; use App\Dto\Hello; use App\Dto\Payload; use PRSW\TypeApiBundle\Attributes\Path; use PRSW\TypeApiBundle\Attributes\TypeApi; use PSX\Api\Attribute\Body; use PSX\Api\Attribute\Post; #[TypeApi] final class PostCollection { #[Post] #[Path('/hello')] public function hello( #[Body] Payload $payload ): Hello { return Hello::create($payload->name, '', $payload->id); } }
所有设置都是为了验证路由是否已注册,您可以通过 ./bin/console debug:router
检查。