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

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.

Mục lục

  • 1. Web services là gì ?
  • 2. Đặc điểm của web service
  • 3. Tạo web service với PHP và MySQL
  •  4. Tổng kết

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.

Hướng dẫn làm web service php
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.

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 :

 $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 '';
		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),'';
						}
					}
					echo '';
				}
			}
		}
		echo '';
	}
	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 :

  • 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":""}},{"user":{"id":"2",'username":"ti123","password":"123456",name :"Nguyen Van Ti","email":""}},{"user":{"id":"3",'username":"tam123","password":"123456",name :"Nguyen Van Tam","email":""}}}

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



1
teo123
123456
Nguyen Van Teo



2
ti123
123456
Nguyen Van Ti



3
tam123
123456
Nguyen Van Tam


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

Mình là Hiếu.
Người sáng lập ra blog Kungfu PHP chia sẻ mọi thứ về tiền điện tử, mmo, lập trình,…
Một câu nói mà mình rất thích đó là “Cuộc đời chỉ có một, vì thế hãy làm những gì khiến bạn hạnh phúc và ở bên người khiến bạn luôn mỉm cười”.
Hy vọng nơi đây là góc cafe nhỏ để chúng ta có thể trao đổi, cùng nhau phát triển.

►Nếu bạn thấy bài viết bạn đang đọc hữu ích, hãy mời mình một ly cafe nhé : https://kungfuphp.com/donate