Slim OPTIONS Middleware
Middleware to add an OPTIONS route to existing routes.
Requirements
Requires PHP 7.0 (or later).
Composer
To add the library as a local, per-project dependency use Composer! Simply add a dependency on subjective-php/slim-options-middleware
to your project's composer.json
file such as:
composer require subjective-php/slim-options-middleware
Contact
Developers may be contacted at:
Project Build
With a checkout of the code get Composer in your PATH and run:
composer install
./vendor/bin/phpunit
./vendor/bin/phpcs
Slim 3 Example
require __DIR__ . '/vendor/autoload.php';
use SubjectivePHP\Slim\Middleware;
// This Slim setting is required for the middleware to work
$app = new Slim\App([
"settings" => [
"determineRouteBeforeAppMiddleware" => true,
]
]);
// create the middleware
$optionsMiddleware = new Middleware\OptionsMiddleware('*', ['Authorization', 'Content-Type']);
$app->map(['GET', 'POST'], 'foos', function ($request, $response, $args) {
return $response;
};
$app->add($optionsMiddleware);
$app->run();
Send an OPTIONS request to the API
curl -i -X OPTIONS http://example.org/foos
Response will be similar to
HTTP/1.1 200 OK
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *
Content-Type: text/html; charset=UTF-8
Date: Mon, 22 Apr 2019 12:45:18 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 0
Connection: keep-alive