Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:core:apiresponse

This is an old revision of the document!


ApiResponse

Layer: Core · Source: lib/core/ApiResponse.php:24 (lines 24–620)


class ApiResponse

Inheritance

No parent, interface or trait. This is a root type.

Constants (18)

^ 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 |

Properties (1)

^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''private static'' | ''static'' | ''$pendingHeaders'' | ''[];'' | 66 |

Methods (29)

^ 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 |

initRateLimit()

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)

setRateLimitHeaders()

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)

withHeader()

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

withEtag()

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

withLastModified()

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

withLocation()

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

checkEtagMatch()

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

checkModifiedSince()

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

notModified()

public static function notModified()

lines 215–222 (8)

Send a 304 Not Modified response

Takes no parameters.

Returns: (none declared) — void

setCacheHeaders()

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

success()

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

created()

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

noContent()

public static function noContent()

lines 314–317 (4)

Send a no content response (204)

Takes no parameters.

Returns: (none declared) — void

error()

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

badRequest()

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

unauthorized()

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

forbidden()

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

notAcceptable()

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

unsupportedMediaType()

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

conflict()

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

notFound()

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

unprocessableEntity()

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

tooManyRequests()

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

methodNotAllowed()

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

paginated()

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

validateAccept()

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

send()

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

getErrorCode()

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

setCorsHeaders()

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.

scriptlog/lib/core/apiresponse.1790413761.txt.gz · Last modified: by admin