tandrewcl / api-response-convert
简单的 JSON 响应转换器
v0.2.0
2024-04-17 15:23 UTC
Requires
- php: >=8.0.2
- symfony/http-foundation: ^6.0|7.0
Suggests
- symfony/translation: To use translated messages in responses
README
关于包
此包是模型/DTO/异常转换为 JsonResponse 的简单解决方案
安装
步骤 1:下载包
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require tandrewcl/api-response-convert
此命令要求您全局安装了 Composer,如 Composer 文档中的安装章节所述。
步骤 2:配置和用法
感谢使用 Symfony flex Bundle,它在 config/bundles.php 中已自动启用
... use tandrewcl\ApiResponseConvertBundle\Converter\ResponseConverterInterface; use tandrewcl\ApiResponseConvertBundle\Handler\ResponseHandler; use tandrewcl\ApiResponseConvertBundle\Model\ConvertedResponseModel; ... class FooConverter implements ResponseConverterInterface { public static function getDefaultSupportedClassPriority(): int { return -245; } public function support(mixed $data): bool { return $data instanceof \Exception; } public static function getDefaultSupportedClassName(): string { return \Exception::class; } /** * @param \Exception $data */ public function convert(mixed $data, ResponseHandler $responseHandler): ConvertedResponseModel { return new ConvertedResponseModel( message: $data->getMessage(), statusCode: Response::HTTP_INTERNAL_SERVER_ERROR ); } }
... use tandrewcl\ApiResponseConvertBundle\Handler\ResponseHandler; use Symfony\Component\HttpFoundation\JsonResponse; ... class FooController { public function __construct( private readonly ResponseHandler $responseHandler ) { } public function indexAction(): JsonResponse { ... return $this->responseHandler->generateResponse($data); }