-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathOpenapiRequestHandler.php
More file actions
31 lines (26 loc) · 1.02 KB
/
OpenapiRequestHandler.php
File metadata and controls
31 lines (26 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
declare(strict_types=1);
namespace App\Core\RequestHandler;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Server\RequestHandlerInterface;
final class OpenapiRequestHandler implements RequestHandlerInterface
{
public function __construct(
private readonly ResponseFactoryInterface $responseFactory,
private readonly StreamFactoryInterface $streamFactory
) {}
public function handle(ServerRequestInterface $request): ResponseInterface
{
return $this->responseFactory
->createResponse(200)
->withHeader('Content-Type', 'application/x-yaml')
->withHeader('Cache-Control', 'no-cache, no-store, must-revalidate')
->withHeader('Pragma', 'no-cache')
->withHeader('Expires', '0')
->withBody($this->streamFactory->createStreamFromFile(__DIR__.'/../../../openapi.yml'))
;
}
}