Skip to content
Le Thu Nguyen edited this page May 31, 2024 · 4 revisions

Code Error of REST

systemConfig.php. File này có nhiệm vụ mở cổng giao tiếp với MySQL và định nghĩa các HTTP statu codes trả về khi bạn thao tác với server (link tham khảo về chúng đây:

class systemConfig { function getStatusCodeMeeage($status){ $codes = Array( 100 => ‘Continue’, 101 => ‘Switching Protocols’, 200 => ‘OK’, 201 => ‘Created’, 202 => ‘Accepted’, 203 => ‘Non-Authoritative Information’, 204 => ‘No Content’, 205 => ‘Reset Content’, 206 => ‘Partial Content’, 300 => ‘Multiple Choices’, 301 => ‘Moved Permanently’, 302 => ‘Found’, 303 => ‘See Other’, 304 => ‘Not Modified’, 305 => ‘Use Proxy’, 306 => ‘(Unused)’, 307 => ‘Temporary Redirect’, 400 => ‘Bad Request’, 401 => ‘Unauthorized’, 402 => ‘Payment Required’, 403 => ‘Forbidden’, 404 => ‘Not Found’, 405 => ‘Method Not Allowed’, 406 => ‘Not Acceptable’, 407 => ‘Proxy Authentication Required’, 408 => ‘Request Timeout’, 409 => ‘Conflict’, 410 => ‘Gone’, 411 => ‘Length Required’, 412 => ‘Precondition Failed’, 413 => ‘Request Entity Too Large’, 414 => ‘Request-URI Too Long’, 415 => ‘Unsupported Media Type’, 416 => ‘Requested Range Not Satisfiable’, 417 => ‘Expectation Failed’, 500 => ‘Internal Server Error’, 501 => ‘Not Implemented’, 502 => ‘Bad Gateway’, 503 => ‘Service Unavailable’, 504 => ‘Gateway Timeout’, 505 => ‘HTTP Version Not Supported’ ); return (isset($codes[$status])) ? $codes[$status] : ”; } /// Trả về response using HTTP header function sendResponse($status = 200, $body = ”, $content_type = ‘text/html’) { $status_header = ‘HTTP/1.1 ‘ . $status . ‘ ‘ . $this->getStatusCodeMeeage($status); header($status_header); header(‘Content-type: ‘ . $content_type); echo $body; } //Dinh nghia connect to db } 

Test rest with DB

<?php include(“../testExample/config/systemConfig.php”); class imageResources { private $dbReference; var $dbConnect; var $result; function __construct(){ } function __destruct(){ } //get images function getAllImageResource(){ $this->dbReference = new systemConfig(); $this->dbConnect = $this->dbReference->connectDB(); if ($this->dbConnect == NULL) { $this->dbReference->sendResponse(503,'{“error_message”:’.$this->dbReference->getStatusCodeMeeage(503).’}’); }else{ $sql = “SELECT * FROM xxx”; $number_per_page = $_POST[“number_per_page”]; $page = ($_POST[“page”]-1)*$number_per_page +1; $page_next = $_POST[“page”]*$number_per_page; //echo “$page”; $this->result = $this->dbConnect->query($sql); if($this->result->num_rows > 0){ // output data of each row $resultSet = array(); while($row = $this->result->fetch_assoc()) { $resultSet[] = $row; } $this->dbReference->sendResponse(200,'{“items”:’.json_encode($resultSet).’}’); }else{ //echo “0 results”; $this->dbReference->sendResponse(200,'{“items”:null}’); } } } } > 

Reference:

  1. https://viblo.asia/p/tao-mot-restful-api-don-gian-voi-php-va-mysql-gAm5ywzqZdb
Clone this wiki locally