Làm web service PHP đơn giản, ứng dụng nhiều đối tượng

Làm web service PHP là cách thiết kế web service bằng PHP để phục vụ cho máy khách. Vậy cách làm web service PHP như thế nào? Những thông tin hướng dẫn giới thiệu dưới đây sẽ cho bạn câu trả lời chi tiết nhất.

Tìm hiểu về web service

Web service là phương thức có thể gọi đến từ xa thông qua http, hoặc hình thức kết nối bất kỳ. Kết quả trả về thường ở 2 dạng và Json hoặc XML. Chính là tính năng này là web service thường được sử dụng trong các hệ thống, ứng dụng phân tán.

Đặc điểm của web service

  • Bất kỳ ứng dụng nào đều có thể truy cập web service.
  • Không cần tới ngôn ngữ lập trình.
  • Hỗ trợ với những yếu tố không nhất quán.
  • Bảo trì đơn giản và chi phí phát triển phù hợp.

 

Đặc điểm của web service

 

Hướng dẫn làm web service PHP

Làm web service PHP thông qua 3 bước dưới đây:

 

Hướng dẫn làm web service PHP

 

B1: Tạo cơ sở dữ liệu bất kỳ, trong đó chứa các cột thông tin với các nội dung như id, fullName, class. Tiếp theo chèn vào bản ghi để kiểm tra, để tạo được csdl ngay lập tức thì bạn có thể chạy lệnh sau đây:

CREATE TABLE IF NOT EXISTS `students` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `fullName` varchar(50) NOT NULL DEFAULT ”,

  `class` varchar(10) NOT NULL DEFAULT ”,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

 —

— Dumping data for table `students`

INSERT INTO `students` (`id`, `fullName`, `class`) VALUES

(1, ‘Nguyễn Đình A’, ‘  10A4’),

(2, ‘Trần Văn B’, ’10A5′),

(3, ‘Trần Đình C’, ’10A6′);

B2: Bước tiếp đến là tạo một file PHP đặt tại web service để giúp gọi ra từ url được nói tới nào đó. Tập tin của web service có định dạng webservice.php với mã lệnh:

<?php

$db_user = ‘root’; //User đăng nhập MYSQL

$db_pass = ‘vertrigo’; // Pass đăng nhập MySQL

$db_host = ‘localhost’; //IP, Domain kết nối

$db_name = ‘test’; //Tên CSDL

//Tạo biến kết nối với CSDL

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die(‘Kết nối thất bại’);

//Lấy kiểu định dạng muốn lấy của request

$formatList = array(‘json’, ‘xml’);

if (isset($_GET[‘format’])) {

            $format = $_GET[‘format’];

} else {

            $format = ‘json’;

}

if (!in_array($format, $formatList)) {

            $format = ‘json’;

}

//Truy vấn

$query = mysqli_query($conn, ‘SELECT * FROM students’);

//Tạo bảng lưu thông tin

$students = array();

while ($rs = mysqli_fetch_assoc($query)) {

            $students[] = $rs;

}

//Trả về kiểu json

if ($format == ‘json’) {

            header(‘Content-type: application/json; charset=utf-8’);

            echo json_encode($students);

}

if ($format == ‘xml’) {

            header(‘Content-type: text/xml; charset=utf-8’);

            echo ‘<users>’;

            foreach ($students as $student) {

                        echo ‘<user>’;

                        if (is_array($student)) {

                                    foreach ($student as $key => $value) {

                                                echo ‘<‘, $key, ‘>’, $value, ‘</’, $key, ‘>’;

                                    }

                        }

                        echo ‘</user>’;

            }

            echo ‘</users>’;

}

mysqli_close($conn);

?>

<?php

$db_user = ‘root’; //User đăng nhập MYSQL

$db_pass = ‘vertrigo’; // Pass đăng nhập MySQL

$db_host = ‘localhost’; //IP, Domain kết nối

$db_name = ‘test’; //Tên CSDL

//Tạo biến kết nối với CSDL

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die(‘Kết nối thất bại’);

//Lấy kiểu định dạng muốn lấy của request

$formatList = array(‘json’, ‘xml’);

if (isset($_GET[‘format’])) {

            $format = $_GET[‘format’];

} else {

            $format = ‘json’;

}

if (!in_array($format, $formatList)) {

            $format = ‘json’;

}

//Truy vấn

$query = mysqli_query($conn, ‘SELECT * FROM students’);

//Tạo bảng lưu thông tin

$students = array();

while ($rs = mysqli_fetch_assoc($query)) {

            $students[] = $rs;

}

//Trả về kiểu json

if ($format == ‘json’) {

            header(‘Content-type: application/json; charset=utf-8’);

            echo json_encode($students);

}

if ($format == ‘xml’) {

            header(‘Content-type: text/xml; charset=utf-8’);

            echo ‘<users>’;

            foreach ($students as $student) {

                        echo ‘<user>’;

                        if (is_array($student)) {

                                    foreach ($student as $key => $value) {

                                                echo ‘<‘, $key, ‘>’, $value, ‘</’, $key, ‘>’;

                                    }

                        }

                        echo ‘</user>’;

            }

            echo ‘</users>’;

}

mysqli_close($conn);

?>

Bước 3: Tạo nên tin cho máy khách có tên là client.php với mã lệnh như sau:

<?php

//Dữ liệu trả về dạng json

$jsonData = file_get_contents(“http://localhost/test/webservice.php?format=json”);

$jsonArray = json_decode($jsonData, true);

var_dump($jsonArray);

<?php

//Dữ liệu trả về dạng json

$jsonData = file_get_contents(“http://localhost/test/webservice.php?format=json”);

$jsonArray = json_decode($jsonData, true);

var_dump($jsonArray);

Trên đây là các bước làm web service PHP đơn giản và hiệu quả đúng không nào. Nếu còn thắc mắc gì hãy liên hệ tới thiết kế web 180 chuyên nhận yêu cầu thiết kế website qua hotline:0363280183 hoặc email:dtn.cntt@gmail.com.