Layer: Core · Source: lib/core/ApiResponse.php:24 (lines 24–620)
class ApiResponse
No parent, interface or trait. This is a root type.
| Visibility | Name | Value | Line |
|---|---|---|---|
- | HTTP_OK | 200; | 29 |
- | HTTP_CREATED | 201; | 30 |
- | HTTP_NO_CONTENT | 204; | 31 |
- | HTTP_BAD_REQUEST | 400; | 32 |
- | HTTP_UNAUTHORIZED | 401; | 33 |
- | HTTP_FORBIDDEN | 403; | 34 |
- | HTTP_NOT_FOUND | 404; | 35 |
- | HTTP_METHOD_NOT_ALLOWED | 405; | 36 |
- | HTTP_NOT_ACCEPTABLE | 406; | 37 |
- | HTTP_UNSUPPORTED_MEDIA_TYPE | 415; | 38 |
- | HTTP_CONFLICT | 409; | 39 |
- | HTTP_UNPROCESSABLE_ENTITY | 422; | 40 |
- | HTTP_TOO_MANY_REQUESTS | 429; | 41 |
- | HTTP_INTERNAL_SERVER_ERROR | 500; | 42 |
- | HTTP_SERVICE_UNAVAILABLE | 503; | 43 |
- | RATE_LIMIT | 60; | 48 |
- | RATE_WINDOW | 60; | 49 |
- | CACHE_TTL | 300; | 54 |
| Visibility | Type | Name | Default | Line |
|---|---|---|---|---|
private static | static | $rateLimitRemaining | 59 | |
private static | static | $rateLimitReset | 60 | |
private static | static | $rateLimitLimit | 61 | |
private static | static | $pendingHeaders | [] | 66 |
| Visibility | Method | Summary | Line |
|---|---|---|---|
| public static | initRateLimit() | Initialize rate limiting (fallback when RateLimiter class not loaded) | 74 |
| public static | setRateLimitHeaders() | Set rate limit headers from RateLimiter result or fallback | 86 |
| public static | withHeader() | Queue a header to be sent with the response | 109 |
| public static | withEtag() | Set ETag header for cache validation | 121 |
| public static | withLastModified() | Set Last-Modified header for cache validation | 136 |
| public static | withLocation() | Set Location header for redirect or created resource | 150 |
| public static | checkEtagMatch() | Check If-None-Match header against provided ETag | 162 |
| public static | checkModifiedSince() | Check If-Modified-Since header against provided timestamp | 193 |
| public static | notModified() | Send a 304 Not Modified response | 215 |
| private static | setCacheHeaders() | Set cache headers based on HTTP method | 231 |
| public static | success() | Send a successful JSON response | 264 |
| public static | created() | Send a created response (201) | 289 |
| public static | noContent() | Send a no content response (204) | 314 |
| public static | error() | Send an error response | 328 |
| public static | badRequest() | Send a 400 Bad Request error | 353 |
| public static | unauthorized() | Send a 401 Unauthorized error | 364 |
| public static | forbidden() | Send a 403 Forbidden error | 375 |
| public static | notAcceptable() | Send a 406 Not Acceptable error | 387 |
| public static | unsupportedMediaType() | Send a 415 Unsupported Media Type error | 399 |
| public static | conflict() | Send a 409 Conflict error | 410 |
| public static | notFound() | Send a 404 Not Found error | 421 |
| public static | unprocessableEntity() | Send a 422 Unprocessable Entity error | 433 |
| public static | tooManyRequests() | Send a 429 Too Many Requests error | 445 |
| public static | methodNotAllowed() | Send a method not allowed error | 458 |
| public static | paginated() | Send a paginated response with HATEOAS links | 475 |
| public static | validateAccept() | Validate Accept header against supported types | 507 |
| private static | send() | Send raw JSON response | 544 |
| private static | getErrorCode() | Get error code from status code | 586 |
| public static | setCorsHeaders() | Set CORS headers for cross-origin requests | 612 |
public static function initRateLimit($limit = self::RATE_LIMIT, $window = self::RATE_WINDOW)
lines 74–79 (6)
Initialize rate limiting (fallback when RateLimiter class not loaded)
| Parameter | Type | Default | Description |
|---|---|---|---|
$limit | (untyped) | self::RATE_LIMIT | none |
$window | (untyped) | self::RATE_WINDOW | none |
Returns: (none declared)
public static function setRateLimitHeaders($rateResult = null)
lines 86–101 (16)
Set rate limit headers from RateLimiter result or fallback
| Parameter | Type | Default | Description |
|---|---|---|---|
$rateResult | (untyped) | null | RateLimiter check result |
Returns: (none declared)
public static function withHeader($header)
lines 109–112 (4)
Queue a header to be sent with the response
| Parameter | Type | Default | Description |
|---|---|---|---|
$header | (untyped) | required | none |
Returns: (none declared) — void
public static function withEtag($etag, $weak = false)
lines 121–128 (8)
Set ETag header for cache validation
| Parameter | Type | Default | Description |
|---|---|---|---|
$etag | (untyped) | required | ETag value (will be quoted automatically) |
$weak | (untyped) | false | Whether this is a weak validator |
Returns: (none declared) — void
public static function withLastModified($timestamp)
lines 136–142 (7)
Set Last-Modified header for cache validation
| Parameter | Type | Default | Description |
|---|---|---|---|
$timestamp | (untyped) | required | Unix timestamp or HTTP date string |
Returns: (none declared) — void
public static function withLocation($url)
lines 150–153 (4)
Set Location header for redirect or created resource
| Parameter | Type | Default | Description |
|---|---|---|---|
$url | (untyped) | required | none |
Returns: (none declared) — void
public static function checkEtagMatch($etag)
lines 162–184 (23)
Check If-None-Match header against provided ETag
Returns true if client should use cached version (send 304)
| Parameter | Type | Default | Description |
|---|---|---|---|
$etag | (untyped) | required | Current ETag for the resource |
Returns: (none declared) — bool True if 304 should be sent
public static function checkModifiedSince($timestamp)
lines 193–208 (16)
Check If-Modified-Since header against provided timestamp
Returns true if client should use cached version (send 304)
| Parameter | Type | Default | Description |
|---|---|---|---|
$timestamp | (untyped) | required | Unix timestamp or HTTP date string |
Returns: (none declared) — bool True if 304 should be sent
public static function notModified()
lines 215–222 (8)
Send a 304 Not Modified response
Takes no parameters.
Returns: (none declared) — void
private static function setCacheHeaders($statusCode, $ttl = self::CACHE_TTL)
lines 231–252 (22)
Set cache headers based on HTTP method
| Parameter | Type | Default | Description |
|---|---|---|---|
$statusCode | (untyped) | required | none |
$ttl | (untyped) | self::CACHE_TTL | Cache TTL in seconds (default 300) |
Returns: (none declared) — void
public static function success($data = null, $statusCode = self::HTTP_OK, $message = null, $links = [], $ttl = self::CACHE_TTL)
lines 264–278 (15)
Send a successful JSON response
| Parameter | Type | Default | Description |
|---|---|---|---|
$data | (untyped) | null | The data to be encoded as JSON |
$statusCode | (untyped) | self::HTTP_OK | HTTP status code (default: 200) |
$message | (untyped) | null | Optional success message |
$links | (untyped) | [] | Optional HATEOAS links |
$ttl | (untyped) | self::CACHE_TTL | Cache TTL in seconds |
Returns: (none declared) — void
public static function created($data, $message = 'Resource created successfully', $links = [], $locationUrl = null)
lines 289–307 (19)
Send a created response (201)
| Parameter | Type | Default | Description |
|---|---|---|---|
$data | (untyped) | required | The created resource data |
$message | (untyped) | 'Resource created successfully' | Optional success message |
$links | (untyped) | [] | Optional HATEOAS links |
$locationUrl | (untyped) | null | Optional Location header URL |
Returns: (none declared) — void
public static function noContent()
lines 314–317 (4)
Send a no content response (204)
Takes no parameters.
Returns: (none declared) — void
public static function error($message, $statusCode = self::HTTP_INTERNAL_SERVER_ERROR, $errorCode = null, $errors = null)
lines 328–344 (17)
Send an error response
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | required | Error message |
$statusCode | (untyped) | self::HTTP_INTERNAL_SERVER_ERROR | HTTP status code |
$errorCode | (untyped) | null | Optional machine-readable error code |
$errors | (untyped) | null | Optional validation errors array |
Returns: (none declared) — void
public static function badRequest($message = 'Bad Request', $errors = null)
lines 353–356 (4)
Send a 400 Bad Request error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Bad Request' | Error message |
$errors | (untyped) | null | Optional validation errors |
Returns: (none declared) — void
public static function unauthorized($message = 'Unauthorized - Authentication required')
lines 364–367 (4)
Send a 401 Unauthorized error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Unauthorized - Authentication required' | Error message |
Returns: (none declared) — void
public static function forbidden($message = 'Forbidden - Access denied')
lines 375–378 (4)
Send a 403 Forbidden error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Forbidden - Access denied' | Error message |
Returns: (none declared) — void
public static function notAcceptable($message = 'Not Acceptable - Requested media type not supported', $supportedTypes = ['application/json'])
lines 387–391 (5)
Send a 406 Not Acceptable error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Not Acceptable - Requested media type not supported' | Error message |
$supportedTypes | (untyped) | ['application/json'] | List of supported content types |
Returns: (none declared) — void
public static function unsupportedMediaType($message = 'Unsupported Media Type')
lines 399–402 (4)
Send a 415 Unsupported Media Type error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Unsupported Media Type' | Error message |
Returns: (none declared) — void
public static function conflict($message = 'Conflict - Resource already exists')
lines 410–413 (4)
Send a 409 Conflict error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Conflict - Resource already exists' | Error message |
Returns: (none declared) — void
public static function notFound($message = 'Resource not found')
lines 421–424 (4)
Send a 404 Not Found error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Resource not found' | Error message |
Returns: (none declared) — void
public static function unprocessableEntity($message = 'Validation failed', $errors = null)
lines 433–436 (4)
Send a 422 Unprocessable Entity error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Validation failed' | Error message |
$errors | (untyped) | null | Validation errors |
Returns: (none declared) — void
public static function tooManyRequests($message = 'Too many requests - Please slow down', $retryAfter = 60)
lines 445–449 (5)
Send a 429 Too Many Requests error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Too many requests - Please slow down' | Error message |
$retryAfter | (untyped) | 60 | Seconds until retry |
Returns: (none declared) — void
public static function methodNotAllowed($message = 'Method not allowed', $allowedMethods = 'GET, POST, PUT, DELETE, PATCH, OPTIONS')
lines 458–462 (5)
Send a method not allowed error
| Parameter | Type | Default | Description |
|---|---|---|---|
$message | (untyped) | 'Method not allowed' | Error message |
$allowedMethods | (untyped) | 'GET, POST, PUT, DELETE, PATCH, OPTIONS' | Comma-separated list of allowed methods |
Returns: (none declared) — void
public static function paginated($data, $currentPage, $perPage, $totalItems, $links = [], $ttl = self::CACHE_TTL)
lines 475–498 (24)
Send a paginated response with HATEOAS links
| Parameter | Type | Default | Description |
|---|---|---|---|
$data | (untyped) | required | The paginated data |
$currentPage | (untyped) | required | Current page number |
$perPage | (untyped) | required | Items per page |
$totalItems | (untyped) | required | Total number of items |
$links | (untyped) | [] | Optional HATEOAS links |
$ttl | (untyped) | self::CACHE_TTL | Cache TTL in seconds |
Returns: (none declared) — void
public static function validateAccept($supportedTypes = ['application/json', '*/*'])
lines 507–534 (28)
Validate Accept header against supported types
Returns true if request is acceptable
| Parameter | Type | Default | Description |
|---|---|---|---|
$supportedTypes | (untyped) | ['application/json', '*/*'] | List of supported MIME types |
Returns: (none declared) — bool
private static function send($data, $statusCode, $ttl = self::CACHE_TTL)
lines 544–578 (35)
Send raw JSON response
| Parameter | Type | Default | Description |
|---|---|---|---|
$data | (untyped) | required | Data to be encoded |
$statusCode | (untyped) | required | HTTP status code |
$ttl | (untyped) | self::CACHE_TTL | Cache TTL in seconds |
Returns: (none declared) — void
private static function getErrorCode($statusCode)
lines 586–604 (19)
Get error code from status code
| Parameter | Type | Default | Description |
|---|---|---|---|
$statusCode | (untyped) | required | HTTP status code |
Returns: (none declared) — string Machine-readable error code
public static function setCorsHeaders($origin = '*')
lines 612–619 (8)
Set CORS headers for cross-origin requests
| Parameter | Type | Default | Description |
|---|---|---|---|
$origin | (untyped) | '*' | Allowed origin (default: *) |
Returns: (none declared) — void
This page is generated from source by 'tools/gendoc'. Edits will be overwritten.