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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| require_once __DIR__.'/../../vendor/autoload.php';
$app = new Silex\Application();
$app['debug'] = true;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Silex\Provider\MonologServiceProvider;
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'dbhost' => 'localhost',
'dbname' => 'todo',
'user' => 'root',
'password' => ''
),
));
//GET /{resource}/{id} Show
$app->get('/todos/{id}', function ($id) use ($app) {
$sql = "SELECT * FROM todo WHERE id = ?";
$post = $app['db']->fetchAssoc($sql, array((int) $id));
return new Response(json_encode($post), 200, array('Content-Type' => 'application/json'));
});
//POST /{resource} Create
$app->post('/todos', function (Request $request) use ($app) {
$data = json_decode($request->getContent());
$todo = $app['db']->insert('todo', array('content' => $data->title));
return new Response(json_encode($data), 200, array('Content-Type' => 'application/json'));
});
//PUT /{resource}/{id} Update
$app->put('/todos/{id}', function ($id, Request $request) use ($app) {
$data = json_decode($request->getContent());
$todo = $app['db']->update('todo',$data,array('id' => $id));
return new Response('Todo updated', 200);
});
//DELETE /{resource}/{id} Destroy
$app->delete('/todos/{id}', function ($id) use ($app) {
$todo = $app['db']->delete('todo', array('id' => $id));
return new Response('Todo deleted', 200);
});
$app->run(); |
Partager