BẠN ĐÃ NGHE VỀ BITCOIN VÀ MUỐN TÌM HIỂU CHÍNH THỐNG?

HƯỚNG DẪN TOÀN TẬP ĐẦU TƯ VỚI THỊ TRƯỜNG BITCOIN 2021

>> Xem tại đây <<

web service

Hướng dẫn tạo web service với PHP và MySQL

Bạn đã từng nghe về web service ? Web service là gì ? Cách hoạt động của nó như thế nào? Trong bài viết này mình sẽ giới thiệu đến các bạn về định nghĩa web service, đặc điểm của web service và hướng dẫn các bạn cách hiện thực 1 web service đơn giản, cơ bản cho những bạn mới bắt đầu tìm hiểu về web service với PHP.

1. Web services là gì ?

Web service là một tập các phương thức được gọi thực hiện từ xa thông qua một địa chỉ url. Kết quả trả về của web service thường dưới dạng json hoặc xml. Web service thường được sử dụng để tạo các ứng dụng phân tán.

web service
Kiến trúc webservice đơn giản

 

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

– Không phụ thuộc vào ngôn ngữ lập trình

– Có thể được truy cập từ bất cứ ứng dụng nào

– Hỗ trợ thao tác giữa các thành phần không đồng nhất

– Chi phí phát triển thấp

– Dễ bảo trì

3. Tạo web service với PHP và MySQL

Ở phần này, mình sẽ hướng dẫn các bạn cách tạo 1 web service đơn giản, có chức năng cung cấp toàn bộ danh sách user có trong database dưới dạng json và xml.

Bước 1 : Tạo một bảng là users sẽ chứa thông tin thành viên của ứng dụng web như là : username, password, name, email,…

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `password` varchar(30) NOT NULL,
  `name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Bạn nên insert một vài mẫu dữ liệu vào bảng users này để chúng ta có dữ liệu để test.

Bước 2 : Tạo một thư mục tên là webservice, đặt trong thư mục gốc của website. Tiếp đến trong thư mục webservice, tạo 1 file đặt tên là connection.php. File này có trách nhiệm tạo kết nối đến cơ sở dữ liệu.

<?php
$server_username = "root"; // điền username đăng nhập mysql
$server_password = ""; // điền password đăng nhập mysql
$server_host = "localhost";// điền tện host
$database = 'kungfuphp'; // tên database

// tạo biến kết nối tới database
$conn = mysqli_connect($server_host,$server_username,$server_password,$database) or die("không thể kết nối tới database");

Bước 3 : Tạo 1 file đặt tên là server.php, File này chịu trách nhiệm lấy thông tin được gửi từ client, xử lý dữ liệu và trả ra dưới dạng json hoặc XML. Nội dung của file này như sau :

<?php
if(isset($_GET["getUser"])){
        // kiểm tra định dạng dữ liểu trả ra là json hay xml          
	$format = strtolower($_GET['format']) == 'json' ? 'json' : 'xml';
	
        //tạo mạng users để lưu thông tin toàn bộ user trong db
        $users = array();
        
        //gọi file kết nối db
	require_once("connection.php");
	//truy vấn lấy toàn bộ thông tin trong bảng users
        $sql = "select * from users";
	$query = mysqli_query($conn,$sql);
	while ($user = mysqli_fetch_assoc($query) {
		$users[] = array('user' => $user);
	}
        // trả ra dữ liệu dưới dạng json
	if ($format == 'json') {
		header('Content-type: application/json');
		echo json_encode(array('users'=>$users));
	}else{
        // trả ra dữ liệu dưới dạng xml
		header('Content-type: text/xml');
		echo '<users>';
		foreach($users as $index => $user) {
			if(is_array($user)) {
				foreach($user as $key => $value) {
					echo '<',$key,'>';
					if(is_array($value)) {
						foreach($value as $tag => $val) {
							echo '<',$tag,'>',htmlentities($val),'</',$tag,'>';
						}
					}
					echo '</',$key,'>';
				}
			}
		}
		echo '</users>';
	}
	mysqli_close();
}else{
    echo "Không có dữ liệu trả về";
}

Giải thích 1 tí về đoạn code trên, đoạn code trên lấy các tham số getUser, format được truyền trên url có dạng như sau :

Gợi ý : Bạn là người mới và muốn tìm hiểu về Bitcoin nhưng không biết bắt đầu từ đâu? Click xem ngay Hướng Dẫn Đầu Tư Bitcoin Cho Người Mới nhé!

  • url lấy thông tin user trả về dưới dạng json
http://localhost/webservice?getUser&format=json
  •  user lấy thông tin user trả về dưới dạng xml
http://localhost/webservice?getUser&format=xml

Với các tham số được truyền vào này, service sẽ thực thi việc truy vấn dữ liệu trong db, trả ra dữ liệu dưới dạng json hoặc xml toàn bộ thông tin user có trong db.

Chẳng hạn với json, dữ liệu trả ra sẽ có định dạng như sau :

{"users":[{"user":{"id":"1",'username":"teo123","password":"123456",name :"Nguyen Van Teo","email":"teo123@gmail.com"}},{"user":{"id":"2",'username":"ti123","password":"123456",name :"Nguyen Van Ti","email":"ti123@gmail.com"}},{"user":{"id":"3",'username":"tam123","password":"123456",name :"Nguyen Van Tam","email":"tam123@gmail.com"}}}

Còn đối với xml dữ liệu trả ra sẽ như sau :

<users>
<user>
<id>1</id>
<username>teo123</username>
<password>123456</password>
<name>Nguyen Van Teo</name>
<email>teo123@gmail.com</email>
</user>
<user>
<id>2</id>
<username>ti123</username>
<password>123456</password>
<name>Nguyen Van Ti</name>
<email>ti123@gmail.com</email>
</user>
<user>
<id>3</id>
<username>tam123</username>
<password>123456</password>
<name>Nguyen Van Tam</name>
<email>tam123@gmail.com</email>
</user>
</users>

Bước 5 : Tùy thuộc vào mục đích sử dụng, dữ liệu trả về sẽ được xử lý khác nhau theo ý muốn người sử dụng. Để có thể lấy được dữ liệu từ service, ta sẽ dùng phương thức curl hoặc file_get_contents.

Tạo một file là client.php, đặt trong thư mục webservice. Nội dung file này đơn giản chỉ là lấy dữ liệu trả về từ webservice thông qua url và xử lý dữ liệu đó theo 1 mục đích nào đó. Đoạn code trong client.php sẽ như sau :

//Lấy dữ liệu trả về dạng xml
$du_lieu_tra_ve_xml = file_get_contents("http://localhost/webservice?getUser&format=xml");

//Lấy dữ liệu trả về dạng json
$du_lieu_tra_ve_json = file_get_contents("http://localhost/webservice?getUser&format=json");

//Code Xử lý dữ liệu trả về theo ý của bạn ...

 4. Tổng kết

Từ ví dụ ở mục 3, các bạn chỉ cần hiểu đơn giản webservice chỉ là 1 dịch vụ, mà tại đó nó nhận yêu cầu thông qua url và các tham số, sau đó nó sẽ xử lý trả về dữ liệu dưới định dạng xml hoặc json theo yêu cầu của người dùng dịch vụ. Xây dựng webservice rất có lợi vì định dạng json hoặc xml là định dạng dữ liệu có thể sử dụng trên nhiều nền tảng như di động (android, ios,…), website (php, jsp,…)

Nguồn : kungfuphp.com

Subscribe
Notify of
guest
9 Bình Luận
Inline Feedbacks
Xem Tất Cả Bình Luận
Nguyễn Anh Đức
Nguyễn Anh Đức
3 năm trước

rất hữu ích và dễ hiểu cho người mới .
cám ơn mod

Vo Van Dung
Vo Van Dung
4 năm trước

Cám ơn bài viết bổ ích của bạn.

Duong The
Duong The
5 năm trước

khi xuất ra xml bị lỗi recor đầu tiên

Hoàng Tùng
Hoàng Tùng
6 năm trước

Chào bạn?
Mình đọc đã đọc bài của bạn thấy rất hay nhưng đây không phải là webservice thì phải :D, đây mới là trả ra file JSON. Vì mình cũng đang kiếm tài liệu xây dựng webservice bằng PHP và tham khảo một vài diễn đàn thấy đa số dùng gì là Restful, SOAP,…
p/s: Mình mới tìm hiểu nên chưa được rõ

Thuyen Hoang
6 năm trước

mình mới học lập trình php. cho mình hỏi để chạy file client.php thì url là gì.Mình chạy nó toàn chạy vào file index.php thôi.tks

9
0
Bạn có ý kiến về bài viết, hãy để lại bình luận nhé!x
()
x