API: Add User Info & other framework
This commit is contained in:
parent
3208dfdf96
commit
f38a92554c
@ -1,67 +1,134 @@
|
|||||||
<?php
|
<?php
|
||||||
require_once __DIR__.'/../../config.php';
|
require_once __DIR__.'/../../config.php';
|
||||||
require UELEARNING_ROOT.'/vendor/autoload.php';
|
require UELEARNING_ROOT.'/vendor/autoload.php';
|
||||||
|
require_once UELEARNING_LIB_ROOT.'/User/User.php';
|
||||||
|
use UElearning\User;
|
||||||
|
use UElearning\Exception;
|
||||||
|
|
||||||
$app = new \Slim\Slim(array(
|
$app = new \Slim\Slim(array(
|
||||||
'templates.path' => './json'
|
'templates.path' => './' // 設定Path
|
||||||
));
|
));
|
||||||
|
|
||||||
$app->get('/', function () use ($app) {
|
// 設定成將使用JSON格式輸出
|
||||||
$requestType = $app->request->headers->get('Accept');
|
function APIrequest() {
|
||||||
if(strpos($requestType, 'text/html') !== FALSE) {
|
$app = \Slim\Slim::getInstance();
|
||||||
include('html/index.html');
|
$app->view(new \JsonApiView());
|
||||||
}
|
$app->add(new \JsonApiMiddleware());
|
||||||
else {
|
}
|
||||||
$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(
|
$app->render(200, array(
|
||||||
'title' => '',
|
'title' => '',
|
||||||
'version' => '2.0'
|
'version' => '2.0',
|
||||||
|
'error' => false,
|
||||||
));
|
));
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
$app->notFound(function () use ($app) {
|
// 沒有此功能
|
||||||
$requestType = $app->request->headers->get('Accept');
|
$app->notFound(function () use ($app) {
|
||||||
if(strpos($requestType, 'text/html') !== FALSE) {
|
|
||||||
include('html/404.html');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$app->view(new \JsonApiView());
|
$app->view(new \JsonApiView());
|
||||||
$app->add(new \JsonApiMiddleware());
|
$app->add(new \JsonApiMiddleware());
|
||||||
|
|
||||||
$app->render(404,array(
|
$app->render(404,array(
|
||||||
'error' => TRUE,
|
'error' => true,
|
||||||
'message' => 'user not found'
|
'message' => 'No this function.',
|
||||||
|
'message_cht' => '沒有此功能'
|
||||||
));
|
));
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
|
// 內部出錯
|
||||||
$app->error(function (\Exception $e) use ($app) {
|
$app->error(function (\Exception $e) use ($app) {
|
||||||
//$app->render('error.php');
|
//$app->render('error.php');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$app->group('/Users', function () use ($app) {
|
// 測試用 Say hello!~~~
|
||||||
|
$app->get('/Hello/:name', function ($name) use ($app) {
|
||||||
$app->get('/:user_id', function ($user_id) {
|
$app->view(new \JsonApiView());
|
||||||
echo "Hello, $user_id";
|
$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) {
|
$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();
|
$app->run();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user