====== 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.//