laurynasgadl / restponder-php
REST API response data builder
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/laurynasgadl/restponder-php
Requires
- php: >=7.3
- ext-json: *
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2025-10-29 02:43:55 UTC
README
Build a better REST API response.
Response examples
Successful
use Luur\Restponder\Restponder; $response = Restponder::content('happy little 🌳');
{
"success":true,
"result":"happy little \ud83c\udf33",
"error":null
}
Successful with attached metadata
use Luur\Restponder\Restponder; $response = Restponder::content('happy little 🌳'); $response->addMetadata('request_id', '1234-5678');
{
"success":true,
"result":"happy little \ud83c\udf33",
"error":null,
"metadata":{
"request_id":"1234-5678"
}
}
Failed
use Luur\Restponder\Restponder; $response = Restponder::content(new Exception('Oops', 987));
{
"success":false,
"result":null,
"error":{
"code":987,
"message":"Oops"
}
}
Failed with debug included
use Luur\Restponder\Restponder; Restponder::setErrorIncludeDebug(true); $response = Restponder::content(new Exception('Oops', 987));
{
"success":false,
"result":null,
"error":{
"code":987,
"message":"Oops",
"debug":{
"type":"Exception",
"trace":"#0 ..."
}
}
}
Failed with attached details
use Luur\Restponder\ErrorData; use Luur\Restponder\Restponder; $handler = function (Exception $exception, ErrorData $data) { $data->addDetail('is_validation_exception', $exception instanceof ValidationException); }; Restponder::registerErrorHandler(Exception::class, $handler); $response = Restponder::content(new Exception('Oops', 987));
{
"success":false,
"result":null,
"error":{
"code":0,
"message":"Unexpected error occurred",
"details":{
"is_validation_exception":false
}
}
}
Usage
Response data
Custom object handler
You can register a custom object handler, to be able to parse response data from any kind of object, however you like.
use Luur\Restponder\ResponseContent; use Luur\Restponder\Restponder; $handler = function (Exception $exception, ResponseContent $response) { $response->addMetadata('failed', true); $response->addMetadata('error_message', $exception->getMessage()); }; Restponder::registerResponseHandler(Exception::class, $handler);
Error data
Custom object handler
You can register a custom object handler, just like with Response.
use Luur\Restponder\ErrorData; use Luur\Restponder\Restponder; $handler = function (Exception $exception, ErrorData $data) { $data->setMessage($exception->getCode().$exception->getMessage()); $data->addDetail('test', true); }; Restponder::registerErrorHandler(Exception::class, $handler);