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

1.0.0 2026-01-02 18:57 UTC

This package is auto-updated.

Last update: 2026-01-03 07:35:21 UTC


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

License

MIT