|null */ private ?array $cachedApiBody = null; public function create(): RequestInput { $method = strtoupper(trim((string) ($_SERVER['REQUEST_METHOD'] ?? 'GET'))); if ($method === '') { $method = 'GET'; } $query = $_GET; $files = $_FILES; // API requests carry a JSON body; web requests use $_POST form data. if (defined('MINTY_API_REQUEST')) { return new RequestInput($method, $query, $this->readApiBody(), $files); } $body = $_POST; return new RequestInput($method, $query, $body, $files); } /** * @return array */ private function readApiBody(): array { if ($this->cachedApiBody !== null) { return $this->cachedApiBody; } $raw = file_get_contents('php://input'); if (!is_string($raw) || $raw === '') { $this->cachedApiBody = []; return $this->cachedApiBody; } $decoded = json_decode($raw, true); $this->cachedApiBody = is_array($decoded) ? $decoded : []; return $this->cachedApiBody; } }