bindAPI/public/index.php

48 lines
1.4 KiB
PHP
Raw Normal View History

<?php declare(strict_types=1);
2024-04-19 16:19:17 +02:00
use App\Service\BindAPI;
error_reporting(error_level: E_ALL);
require dirname(path: __DIR__) . '/vendor/autoload.php';
2022-01-18 19:14:24 +01:00
2024-04-25 20:58:01 +02:00
$parsedUrl = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH);
$uri = explode(separator: '/', string: $parsedUrl);
2024-04-25 20:58:01 +02:00
$baseRoutes = ['app', 'api'];
$uriPrefix = $uriFirstThreeLetters = substr(string: $uri[1], offset: 0, length: 3);
if (!in_array(needle: $uriPrefix, haystack: $baseRoutes)) {
// only handle $baseRoutes, elso go to swagger ui
$scheme = $_SERVER['REQUEST_SCHEME'];
$host = $_SERVER['SERVER_NAME'];
$header = "$scheme://$host/openapi/index.html";
header(header: "Location: $header");
exit(0);
2022-01-18 19:14:24 +01:00
}
2022-09-17 15:54:20 +02:00
header(header: "Access-Control-Allow-Origin: *");
header(header: "Content-Type: application/json; charset=UTF-8");
header(header: "Access-Control-Allow-Methods: OPTIONS,GET,POST,PUT,DELETE");
header(header: "Access-Control-Max-Age: 3600");
2024-04-25 21:03:35 +02:00
header(header: "Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, x-api-key");
2022-01-18 19:14:24 +01:00
$requestMethod = $_SERVER["REQUEST_METHOD"];
2024-04-25 20:58:01 +02:00
if ($requestMethod === "OPTIONS") {
// Respond with OK status code for preflight requests
http_response_code(response_code: 200);
exit();
}
try {
2024-04-17 15:27:21 +02:00
$app = new BindAPI(quiet: false);
2022-09-17 15:54:20 +02:00
$app->handleRequest(requestMethod: $requestMethod, uri: $uri);
} catch (Exception $e) {
echo json_encode(value: [
'error' => $e->getMessage()
]);
}
2024-04-25 21:03:35 +02:00