This is an old revision of the document!
Table of Contents
ApiController
Layer: Controller · Source: lib/controller/ApiController.php:26 (lines 26–444)
class ApiController
API Base Controller
Base controller for all API controllers Provides common functionality for request handling, validation, and authentication
Docblock Metadata
^ Tag ^ Value ^ | ''@category'' | Controller Class | | ''@author'' | Blogware Team | | ''@license'' | MIT | | ''@version'' | 1.0 | | ''@since'' | Since Release 1.0 |
Inheritance
No parent, interface or trait. This is a root type.
Constants (0)
None.
Properties (5)
^ Visibility ^ Type ^ Name ^ Default ^ Line ^ | ''protected'' | ''(untyped)'' | ''$requestData'' | ''[];'' | 31 | | ''protected'' | ''(untyped)'' | ''$queryParams'' | ''[];'' | 36 | | ''protected'' | ''(untyped)'' | ''$method'' | '''GET';'' | 41 | | ''protected'' | ''(untyped)'' | ''$headers'' | ''[];'' | 48 | | ''protected'' | ''(untyped)'' | ''$requiresAuth'' | ''true;'' | 53 |
Methods (16)
^ Visibility ^ Method ^ Summary ^ Line ^ | public | ''__construct()'' | Constructor | 58 | | protected | ''getHeaders()'' | Get request headers | 84 | | protected | ''getRequestData()'' | Get request data based on HTTP method | 103 | | protected | ''validateContentType()'' | Validate Content-Type for write requests | 152 | | protected | ''getJsonBody()'' | Get JSON body from request | 187 | | protected | ''authenticate()'' | Authenticate the request | 208 | | protected | ''isAuthenticated()'' | Check if user is authenticated | 231 | | protected | ''getUser()'' | Get authenticated user | 243 | | protected | ''hasPermission()'' | Check if user has permission | 254 | | protected | ''validateRequired()'' | Validate required fields | 266 | | protected | ''validateEmail()'' | Validate email format | 288 | | protected | ''getAppUrl()'' | Get application URL from config | 298 | | protected | ''sanitize()'' | Sanitize string input | 309 | | protected | ''getPagination()'' | Get pagination parameters | 324 | | protected | ''getSorting()'' | Get sorting parameters | 344 | | public | ''info()'' | API info endpoint | 370 |
__construct()
public function __construct()
lines 58–77 (20)
Constructor
Takes no parameters.
getHeaders()
protected function getHeaders()
lines 84–96 (13)
Get request headers
Takes no parameters.
Returns: (none declared) — array
getRequestData()
protected function getRequestData()
lines 103–138 (36)
Get request data based on HTTP method
Takes no parameters.
Returns: (none declared) — array
validateContentType()
protected function validateContentType()
lines 152–180 (29)
Validate Content-Type for write requests
Enforces application/json Content-Type for POST, PUT, PATCH, DELETE when a Content-Type header is present and is not a supported form type. Sends 415 Unsupported Media Type response on mismatch.
Override in child controllers (e.g., MediaApiController for uploads) to permit multipart/form-data.
Takes no parameters.
Returns: (none declared) — void
getJsonBody()
protected function getJsonBody()
lines 187–201 (15)
Get JSON body from request
Takes no parameters.
Returns: (none declared) — array|null
authenticate()
protected function authenticate()
lines 208–224 (17)
Authenticate the request
Takes no parameters.
Returns: (none declared) — void
isAuthenticated()
protected function isAuthenticated()
lines 231–234 (4)
Check if user is authenticated
Takes no parameters.
Returns: (none declared) — bool
getUser()
protected function getUser()
lines 243–246 (4)
Get authenticated user
Takes no parameters.
Returns: (none declared) — array|null
hasPermission()
protected function hasPermission($requiredLevels)
lines 254–257 (4)
Check if user has permission
^ Parameter ^ Type ^ Default ^ Description ^ | ''$requiredLevels'' | ''(untyped)'' | //required// | //none// |
Returns: (none declared) — bool
validateRequired()
protected function validateRequired($data, $required)
lines 266–280 (15)
Validate required fields
^ Parameter ^ Type ^ Default ^ Description ^ | ''$data'' | ''(untyped)'' | //required// | Data to validate | | ''$required'' | ''(untyped)'' | //required// | Required fields |
Returns: (none declared) — array|null Validation errors or null if valid
validateEmail()
protected function validateEmail($email)
lines 288–291 (4)
Validate email format
^ Parameter ^ Type ^ Default ^ Description ^ | ''$email'' | ''(untyped)'' | //required// | //none// |
Returns: (none declared) — bool
getAppUrl()
protected function getAppUrl()
lines 298–301 (4)
Get application URL from config
Takes no parameters.
Returns: (none declared) — string
sanitize()
protected function sanitize($value)
lines 309–316 (8)
Sanitize string input
^ Parameter ^ Type ^ Default ^ Description ^ | ''$value'' | ''(untyped)'' | //required// | //none// |
Returns: (none declared) — array|string
getPagination()
protected function getPagination($params)
lines 324–335 (12)
Get pagination parameters
^ Parameter ^ Type ^ Default ^ Description ^ | ''$params'' | ''(untyped)'' | //required// | Query parameters |
Returns: (none declared) — array
getSorting()
protected function getSorting($params, $allowedFields = [])
lines 344–361 (18)
Get sorting parameters
^ Parameter ^ Type ^ Default ^ Description ^ | ''$params'' | ''(untyped)'' | //required// | Query parameters | | ''$allowedFields'' | ''(untyped)'' | ''[]'' | Allowed sort fields |
Returns: (none declared) — array
info()
public function info()
lines 370–443 (74)
API info endpoint
Takes no parameters.
Returns: (none declared) — void
Imports
^ Alias ^ Fully-qualified name ^ | ''ApiAuth'' | [[scriptlog:lib:core:apiauth|''Scriptlog\Core\ApiAuth'']] | | ''ApiHelper'' | [[scriptlog:lib:core:apihelper|''Scriptlog\Core\ApiHelper'']] | | ''ApiHateoas'' | [[scriptlog:lib:core:apihateoas|''Scriptlog\Core\ApiHateoas'']] | | ''ApiResponse'' | [[scriptlog:lib:core:apiresponse|''Scriptlog\Core\ApiResponse'']] |
This page is generated from source by 'tools/gendoc'. Edits will be overwritten.
