prsw/typeapi-bundle

为 Symfony 实现的 TypeApi

dev-main 2024-09-29 13:25 UTC

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 检查。