示例#1
1
 function getRoutesFromDB()
 {
     $relations = array();
     $relations = $this->getRelations();
     $json_relations = JSONRouteRelation::getJSONRelations();
     if (count($json_relations) > 0) {
         foreach ($json_relations as $route => $relation) {
             if (isset($relations[$route])) {
                 $relations[$route] = array_merge($relations[$route], $relation);
             } else {
                 $relations[$route] = $relation;
             }
         }
     }
     $result = DBController::Query("SHOW TABLES");
     if ($result === false) {
         exit(ApiResponse::errorResponse(404));
     } else {
         if (empty($result) === true) {
             exit(ApiResponse::errorResponse(204));
         } else {
             foreach ($result as $k => $v) {
                 $route = reset($v);
                 $route = new Route();
                 $route->routeName = reset($v);
                 if (isset($relations[$route->routeName])) {
                     $route->routeFields = $this->getRouteFields($route, $relations[$route->routeName]);
                 } else {
                     $route->routeFields = $this->getRouteFields($route);
                 }
                 ResterUtils::Log("*** PRIMARY KEY: " . $route->routeName . " => " . $route->primaryKey->fieldName);
                 $routes[$route->routeName] = $route;
             }
         }
     }
     ApiCacheManager::saveValueToCache(ROUTE_CACHE_KEY, $routes);
     return $routes;
 }
示例#2
0
文件: index.php 项目: aqidd/Rester
}
require_once __DIR__ . '/config.php';
require_once __DIR__ . '/include/DBController.php';
require_once __DIR__ . '/include/ApiResponse.php';
require_once __DIR__ . '/include/SwaggerHelper.php';
require_once __DIR__ . '/include/ResterController.php';
require_once __DIR__ . '/include/ApiCacheManager.php';
require_once __DIR__ . '/include/model/RouteCommand.php';
//TODO; Make this smarter
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, X-StackMob-Proxy-Plain');
header('X-XRDS-Location: http://' . $_SERVER['SERVER_NAME'] . '/services.xrds.php');
$resterController = new ResterController();
if (isset($_GET["cacheClear"])) {
    ApiCacheManager::clear();
    //exit();
}
if (array_key_exists('_method', $_GET) === true) {
    $_SERVER['REQUEST_METHOD'] = strtoupper(trim($_GET['_method']));
} else {
    if (array_key_exists('HTTP_X_HTTP_METHOD_OVERRIDE', $_SERVER) === true) {
        $_SERVER['REQUEST_METHOD'] = strtoupper(trim($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']));
    }
}
//Include API Versions
if (defined('API_VERSION') && file_exists(__DIR__ . "/versions/" . API_VERSION . ".php")) {
    include __DIR__ . "/versions/" . API_VERSION . ".php";
}
//Do the work
$resterController->processRequest($_SERVER['REQUEST_METHOD']);