sevaske / api-response-payload
Installs: 8
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/sevaske/api-response-payload
Requires
- php: ^8.0
Requires (Dev)
- laravel/pint: ^1.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^9.0||^10.0
README
A small PHP library for building consistent API response payloads.
This package focuses on payload structure only and does not include any HTTP, framework, or transport-specific logic.
Installation
composer require sevaske/api-response-payload
Purpose
This library solves a single problem:
Build predictable and extensible API response payloads
It intentionally does not:
- handle HTTP responses
- depend on any framework (Laravel, Symfony, etc.)
- enforce API semantics like
data,errors, or status codes
Those concerns belong to higher-level layers.
Basic Usage
use Sevaske\ApiResponsePayload\ApiResponsePayload; $payload = new ApiResponsePayload(); $response = $payload->build( success: true, message: 'OK', extra: [ 'data' => ['id' => 1], ] );
Result:
{
"success": true,
"message": "OK",
"data": {
"id": 1
}
}
Error Example
$response = $payload->build( success: false, message: 'Validation failed', extra: [ 'errors' => [ 'email' => 'Required' ] ] );
{
"success": false,
"message": "Validation failed",
"errors": {
"email": "Required"
}
}
Customizing Keys
You can customize payload keys via the constructor:
$payload = new ApiResponsePayload( successKey: 'ok', messageKey: 'msg' );
{
"ok": true,
"msg": "Done"
}
Custom Success Values
The success indicator can be formatted as any scalar value:
$payload = new ApiResponsePayload( successValue: 1, errorValue: 0 );
{
"success": 1
}
Or:
$payload = new ApiResponsePayload( successValue: 'yes', errorValue: 'no' );
Testing
vendor/bin/phpunit