diff --git a/htdocs/API/v2/index.php b/htdocs/API/v2/index.php index 6919f2f..5216b16 100644 --- a/htdocs/API/v2/index.php +++ b/htdocs/API/v2/index.php @@ -1,67 +1,134 @@ './json' + 'templates.path' => './' // 設定Path )); -$app->get('/', function () use ($app) { - $requestType = $app->request->headers->get('Accept'); - if(strpos($requestType, 'text/html') !== FALSE) { - include('html/index.html'); - } - else { - $app->view(new \JsonApiView()); - $app->add(new \JsonApiMiddleware()); +// 設定成將使用JSON格式輸出 +function APIrequest() { + $app = \Slim\Slim::getInstance(); + $app->view(new \JsonApiView()); + $app->add(new \JsonApiMiddleware()); +} +function APIdisableFunc($app) { + $app->render(405,array( + 'error' => true, + 'message' => 'This function is not enable.', + 'message_cht' => '此功能尚未開放' + )); +} + +// 取得Client要求的格式 +$requestType = $app->request->headers->get('Accept'); +// 若要求網頁版 +if(strpos($requestType, 'text/html') !== false) { + + // API首頁 + $app->get('/', function () use ($app) { + include('html/index.html'); + }); + + // 沒有此功能 + $app->notFound(function () use ($app) { + include('html/404.html'); + }); +} +// 要求其他格式時,將以JSON為主 +else { + + // API首頁 + $app->get('/', 'APIrequest', function () use ($app) { $app->render(200, array( 'title' => '', - 'version' => '2.0' + 'version' => '2.0', + 'error' => false, )); - } -}); + }); -$app->notFound(function () use ($app) { - $requestType = $app->request->headers->get('Accept'); - if(strpos($requestType, 'text/html') !== FALSE) { - include('html/404.html'); - } - else { + // 沒有此功能 + $app->notFound(function () use ($app) { $app->view(new \JsonApiView()); $app->add(new \JsonApiMiddleware()); $app->render(404,array( - 'error' => TRUE, - 'message' => 'user not found' + 'error' => true, + 'message' => 'No this function.', + 'message_cht' => '沒有此功能' )); - } -}); + }); +} +// 內部出錯 $app->error(function (\Exception $e) use ($app) { //$app->render('error.php'); }); -$app->group('/Users', function () use ($app) { - - $app->get('/:user_id', function ($user_id) { - echo "Hello, $user_id"; - }); +// 測試用 Say hello!~~~ +$app->get('/Hello/:name', function ($name) use ($app) { + $app->view(new \JsonApiView()); + $app->add(new \JsonApiMiddleware()); + $app->render(200,array( + 'error' => false, + 'message' => 'Hello, $name' + )); }); -$app->group('/UTokens', function () use ($app) { +// ============================================================================ + +$app->group('/Users', 'APIrequest', function () use ($app) { + + // 建立帳號 + $app->post('/', function () use ($app) { + APIdisableFunc($app); + }); + + // 取得帳號資訊 + $app->get('/:user_id', function ($user_id) use ($app) { + try { + $user = new User\User($user_id); + + $app->render(200,array( + 'user_id' => $user_id, + 'nickname' => $user->getNickName(), + 'class_name' => $user->getClassName(), + 'error' => false + )); + } + catch (Exception\UserNoFoundException $e) { + $app->render(404,array( + 'user_id' => $user_id, + 'error' => true, + 'message' => '\''.$user_id.'\' is not found', + 'message_cht' => '找不到\''.$user_id.'\'使用者' + )); + } + + + }); + + $app->post('/:user_id/Login/', function ($user_id) use ($app) { + // TODO: 登入 + APIdisableFunc($app); + }); +}); + +$app->group('/UTokens', 'APIrequest', function () use ($app) { $app->get('/:token', function ($token) { - echo "Login Token: $token"; + //echo "Login Token: $token"; + // TODO: 登入Token + APIdisableFunc($app); }); }); -// Say hello!~~~ -$app->get('/hello/:name', function ($name) { - echo "Hello, $name"; -}); $app->run();