ОТДЫХНАЯ концепция - PullRequest
       1

ОТДЫХНАЯ концепция

0 голосов
/ 26 июня 2011

Я все еще не понимаю концепцию RESTfull. У меня есть сервис, как здесь

include '../includeall.php';
$query = Q_GET_FACT_GIVEN_TABLE;

$i = 0;
$queryall = null;
if (isset($_GET['year'])) {
    $year = $_GET['year'];
    $queryall[$i++] = "f.year=" . $year;
}

if (isset($_GET['period_id'])) {
    $period_id = $_GET['period_id'];
    $queryall[$i++] = "f.period_id=" . $period_id;
}

if (isset($_GET['month_id'])) {
    $month_id = $_GET['month_id'];
    $queryall[$i++] = "f.month_id=" . $month_id;]
}

if (isset($_GET['var_in_cat_id'])) {
    $var_in_cat_id = $_GET['var_in_cat_id'];
    $queryall[$i++] = "f.var_in_cat_id=" . $var_in_cat_id;
}

if (isset($_GET['reg_id'])) {
    $reg_id = $_GET['reg_id'];
    if ($reg_id == "prop")
        $queryall[$i++] = "substring(reg_id,-2)='00' AND reg_id<>'0000'";
    else
        $queryall[$i++] = "f.reg_id=" . $reg_id;
}

if (isset($_GET['id_prop'])) {
    $idprop = $_GET['id_prop'];
    $queryall[$i++] = "substring(reg_id,1,2)='$idprop' AND substring(reg_id,-2)<>'00'";
}

if (isset($_GET['data_source_id'])) {
    $data_source_id = $_GET['data_source_id'];
    $queryall[$i++] = "f.data_source_id=" . $data_source_id;
}

for($i=0;$i<count($queryall);$i++){
    $queryi=$queryall[$i];
    $query.=" AND ".$queryi;
}

$query.=" ORDER BY reg_id,month_id";

$database = new Database();
$queryResult = $database->query($query);
$resultArray = Utils::convertToJSON($queryResult);
?>

Может ли мой код реализации выше называться веб-сервисом ?? В выводе содержится реализация JSON в виде запроса пользователя по некоторому URL. Если это можно отнести к категории веб-сервисов, какой сервис у меня есть ?? Это может быть вызов как веб-сервис RESTfull .. Пожалуйста, помогите мне ..

1 Ответ

1 голос
/ 26 июня 2011

Ну, вы можете считать это веб-службой, но в ее интерфейсе нет REST-аспекта.Я бы назвал это ... функцией поиска.

REST (передача состояния представления) означает, что метод HTTP определяет действие, которое вы выполняете.Например, HTTP-запрос DELETE фактически приведет к удалению, а PUT запишет ресурс.Как показано выше, ваше приложение состоит из функции поиска и поэтому не применяется.

В php вы можете определить HTTP-метод, используемый в запросе, из $_SERVER['REQUEST_METHOD']. * 1010.*

Кстати, вы не должны инициализировать $queryall как ноль, а array().Вы также можете избавиться от $i и просто написать $queryall[] = ... вместо $queryall[$i++].

Кроме того, вы не должны создавать запрос к базе данных путем конкатенации входных строк, так как этот код делает ваше приложение уязвимым для SQL-инъекции .Используйте подготовленные операторы , чтобы избежать уязвимостей SQL-инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...