index.php (30 lines of code) (raw):
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/vendor/autoload.php';
$app = AppFactory::create();
$app->add(new Tuupola\Middleware\HttpBasicAuthentication([
"users" => [
"elephpant" => "I❤️PHP",
]
]));
$app->get('/api/hello', function (Request $request, Response $response) {
$name = $request->getQueryParams()['name'];
$time = date('r');
$response->getBody()->write(sprintf("%s: Hello, %s!", $time, $name));
return $response;
});
$app->get('/api/item', function (Request $request, Response $response) {
$todo = file_get_contents('data.json');
$response->getBody()->write($todo);
$response = $response->withHeader('Content-Type', 'application/json');
return $response;
});
$app->post('/api/item', function (Request $request, Response $response) {
$todo = $request->getBody()->getContents();
file_put_contents('data.json', $todo);
$response = $response->withStatus(204);
return $response;
});
$app->run();