tandrewcl / api-response-convert
Simple json response converter
Installs: 128
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Type:symfony-bundle
Requires
- php: >=8.0.2
- symfony/http-foundation: ^6.0|7.0
Suggests
- symfony/translation: To use translated messages in responses
README
About bundle
This bundle is a simple solution to convert models/DTO/Exceptions to JsonResponse
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require tandrewcl/api-response-convert
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Config and Usage
Thanks for Symfony flex Bundle is auto enabled in 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); }