59 lines
No EOL
1.6 KiB
PHP
59 lines
No EOL
1.6 KiB
PHP
<?php
|
|
|
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\Uid\Ulid;
|
|
use Symfony\Component\Uid\Uuid;
|
|
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
$request = Request::createFromGlobals();
|
|
$path = $request->getPathInfo();
|
|
$scheme = $request->getScheme();
|
|
$host = $request->getHost();
|
|
$base = "{$scheme}://{$host}/";
|
|
|
|
function response(string $text): Response {
|
|
return new Response($text, 200, [
|
|
'Content-Type' => 'text/plain',
|
|
]);
|
|
}
|
|
|
|
$response = match ($path) {
|
|
'/uuid/v1' => \response(Uuid::v1()->toString()),
|
|
'/uuid/v4' => \response(Uuid::v4()->toString()),
|
|
'/uuid/v6' => \response(Uuid::v6()->toString()),
|
|
'/uuid/v7' => response(Uuid::v7()->toString()),
|
|
'/ulid' => response(Ulid::generate()),
|
|
'/' => response(<<<TXT
|
|
UUID/ULID Webservice
|
|
|
|
Available Endpoints:
|
|
/uuid/v1 - Generate a UUID v1 (time-based)
|
|
curl {$base}uuid/v1
|
|
|
|
/uuid/v3 - Generate a UUID v3 (name-based, MD5 hash)
|
|
curl {$base}uuid/v3
|
|
|
|
/uuid/v4 - Generate a UUID v4 (random)
|
|
curl {$base}uuid/v4
|
|
|
|
/uuid/v5 - Generate a UUID v5 (name-based, SHA-1 hash)
|
|
curl {$base}uuid/v5
|
|
|
|
/uuid/v6 - Generate a UUID v6 (reordered time-based)
|
|
curl {$base}uuid/v6
|
|
|
|
/uuid/v7 - Generate a UUID v7 (Unix timestamp-based)
|
|
curl {$base}uuid/v7
|
|
|
|
/ulid - Generate a ULID
|
|
curl {$base}ulid
|
|
|
|
TXT
|
|
),
|
|
default => new RedirectResponse("/", 301),
|
|
};
|
|
|
|
$response->send(); |