PHP Функция конечной точки API отдыха прекратит дальнейшую обработку - PullRequest
0 голосов
/ 15 апреля 2020
class REST {
  // this section is from http://www.tutorialsface.com/2016/02/simple-php-mysql-rest-api-sample-example-tutorial/
  public function response($data,$status){
    $this->_code = ($status)?$status:200;
    $this->set_headers();
    echo $data;
    exit;
  }
}

class API extends REST {
  private function create_booking(){    

    if($this->get_request_method() != "POST"){
      echo $this->response('Method Not Acceptable',406);
    }

    /*pseudocode for processing data if method is POST*/
    Find whether record exists.
    If exist {
      set $message = "record found"
    } else {
      If not exist, insert record
      set $message = "record inserted"
    }
    echo $this->response($message,200);
  }
}

Я хотел бы знать, если, скажем, у меня есть конечная точка API, использующая вышеуказанный метод, когда пользователь не использует POST, система остановит обработку после эхо-ошибки 406, или она все еще продолжится после существующей Заявление IF.

У меня есть пользователи, отправляющие новое бронирование в эту конечную точку несколько раз, поскольку сервер не ответил на сообщение. В итоге у меня есть дубликаты заказов в моей базе данных.

Что может привести к такому инциденту?

1 Ответ

1 голос
/ 15 апреля 2020

Да, он будет выполняться дальше, но вам нужно остановить дальнейшее выполнение. Вы можете добавить простой return в ваш метод ниже эхо-сообщения, чтобы выйти из метода:

if($this->get_request_method() != "POST"){
  echo $this->response('Method Not Acceptable',406);
  return;
}
...