mirror of
https://github.com/flarum/flarum.git
synced 2025-12-02 00:00:16 -05:00
And let them know what kind of request this is via a “type” binding on the container. Not sure if there is a better way to do this. But they need to know somehow, so extenders can act selectively (e.g. the ForumClient extender should only act on forum requests, not on API or admin requests)
34 lines
963 B
PHP
34 lines
963 B
PHP
<?php
|
|
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
use Zend\Diactoros\Server;
|
|
use Zend\Stratigility\MiddlewarePipe;
|
|
|
|
// Instantiate the application, register providers etc.
|
|
$app = require __DIR__.'/system/bootstrap.php';
|
|
|
|
// Set up everything we need for the API
|
|
$app->instance('type', 'api');
|
|
$app->register('Flarum\Api\ApiServiceProvider');
|
|
$app->register('Flarum\Support\Extensions\ExtensionsServiceProvider');
|
|
|
|
// Build a middleware pipeline for the API
|
|
$api = new MiddlewarePipe();
|
|
$api->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters'));
|
|
$api->pipe($app->make('Flarum\Api\Middleware\LoginWithHeader'));
|
|
|
|
$api->pipe('/api', $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.api.routes')]));
|
|
$api->pipe(new \Franzl\Middleware\Whoops\Middleware());
|
|
|
|
$server = Server::createServer(
|
|
$api,
|
|
$_SERVER,
|
|
$_GET,
|
|
$_POST,
|
|
$_COOKIE,
|
|
$_FILES
|
|
);
|
|
|
|
$server->listen();
|