function function_get($request_endpoint) { try { $exploded = explode('/', $request_endpoint); if ($exploded[1] == 'test') { $response['error'] = 'false'; $response['response'] = 'test API endpoint working'; echo json_encode($response); } else { if ($exploded[1] == 'v1') { if ($exploded[2] == 'register' & !isset($exploded[3])) { function_generate_api_key(); return; } if (explode('?', $exploded[2])[0] == 'alias') { $error = 'input_error'; if (isset($_GET['key'])) { $access_key = $_GET['key']; } else { throw new Exception('api_key_error'); } if (isset($_GET['name'])) { $name = $_GET['name']; } else { throw new Exception('input_error'); } if (isset($_GET['alias'])) { $alias = explode(',', $_GET['alias']); } else { throw new Exception('input_error'); } if (isset($_GET['threshold'])) { $threshold = $_GET['threshold']; } else { $threshold = 0.0; } $x = function_validate_api_key($access_key); if (!$x[0]) { throw new Exception('api_key_error'); } else { $alias_scoring = jaroWinkler($name, $alias, $threshold); $response = []; $response['error'] = 'false'; $response['response'] = []; $response['response']['name'] = $name; $response['response']['comparisons'] = []; foreach ($alias_scoring as $name => $score) { $response['response']['comparisons'][$name] = $score; } echo json_encode($response); } } else { throw new Exception('resource_error'); } } else { throw new Exception('version_error'); } } } catch (Exception $e) { switch ($e->getMessage()) { case 'input_error': function_error('input_error'); break; case 'resource_error': function_error('resource_error'); break; case 'version_error': function_error('version_error'); break; case 'api_key_error': function_error('api_key_error'); break; default: function_error(); break; } } return; }
<?php require_once 'logic.php'; $http_method = $_SERVER['REQUEST_METHOD']; $request_endpoint = $_SERVER['REQUEST_URI']; switch ($http_method) { case 'GET': function_get($request_endpoint); break; default: function_error('method_error'); break; }