Trong bài trước “Làm sao để viết một ứng dụng mobile ?” , chúng tôi đã giới thiệu về các loại ứng dụng & các thành phần tương ứng. Các ứng dụng được phát triển tại Labian Labs thuộc loại 3, bởi app có các tính năng như một mạng xã hội & sử dụng rất nhiều thành phần Web service, trong bài này chúng tôi sẽ giới thiệu cách thức sử dụng Web service trong các sản phẩm được phát triển tại Labs
Vì sao chúng tôi sử dụng Web service
Hãy xem lại mô hình ứng dụng có sử dụng cơ sở dữ liệu & Web service đã được giới thiệu trong bài trước
Các ứng dụng theo mô hình này có Cơ sở dữ liệu lưu trữ & một số code xử lý được đặt ở một Máy chủ (server), các ứng dụng mobile sẽ đọc thông tin từ cơ sở dữ liệu hoặc gọi các đoạn code xử lý tại máy chủ thông qua một thứ gọi là Web service.
Như vậy Web service cho phép một chương trình ứng dụng mobile gọi thực thi mã lệnh trên một máy tính khác (máy chủ) để lấy thông tin hoặc để lưu thông tin của người dùng.
Trong trường hợp các ứng dụng tại Labian Labs, chúng tôi cần lưu trữ hồ sơ người dùng, nội dung các khóa học, tiến độ của người học,… với các yêu cầu về bảo mật & có thể khôi phục, tải lại được ngay cả khi người dùng cài lại app. Do vậy chúng tôi cần lưu trữ các thông tin này tại máy chủ và tải về khi người dùng yêu cầu.
Trong hình bên trên, chúng tôi xử lý các hàm đăng nhập, lấy danh sách khóa học, lấy thông tin bảng xếp hạng & thông tin Profile tại Server & cho phép mobile app gọi các hàm xử lý này thông qua Web service.
Triển khai Web service với PHP
Để cho phép gọi thực thi hàm trên máy chủ như mô tả ở trên, chúng tôi đã viết các hàm xử lý trên máy chủ bằng ngôn ngữ PHP & Python & triển khai các hàm xử lý này với RESTFul Web service.
RESTFul là một trong những kiến trúc phổ biến để triển khai Web service, cho phép mobile app gọi hàm xử lý tại máy chủ thông qua giao thức HTTP, việc gọi hàm xử lý này đơn giản như bạn gõ một đường dẫn một trang web trên trình duyệt

Hình trên mô tả cách thức hoạt động của một Web service để lấy danh sách khóa học từ máy chủ & được thực thi ngay trên trình duyệt, cụ thể như sau:
3 đặc điểm của RESTFul Web service
Giả sử chúng ta đã có hàm xử lý đọc danh sách khóa học từ cơ sở dữ liệu tại máy chủ bằng ngôn ngữ PHP hoặc một ngôn ngữ bất kỳ, miễn chúng có thể được thực thi bởi Web server Apache, IIS, hoặc Tomcat … để triển khai hàm xử lý này thành 1 Web service theo kiến trúc RESTful, có 3 thứ chúng ta cần chú ý:
- URL (đường dẫn màu xanh trong hình trên): chúng ta cần định nghĩa đường dẫn cho Web service, trong đó phần tên sau domain name của đường dẫn cho biết tài nguyên (dữ liệu) đang được cung cấp bởi Web service, trong vd trên thì nó là khoa-hoc, nó cũng có thể là user, hoặc profile,… đây cũng chính là cú pháp đặt tên cho Web service theo chuẩn REST: [domain] + / + [tên tài nguyên]
- Phương thức HTTP (chữ GET màu đỏ trong hình trên): HTTP hỗ trợ 4 phương thức GET, POST, PUT, DELETE. REST Web service tận dụng 4 phương thức này cho 4 hành động Đọc, Tạo mới, Cập nhật, Xóa trên tài nguyên trong URL ở mục (1). Hành động gõ đường dẫn abc.com vào trình duyệt luôn tạo ra một phương thức GET của HTTP vào máy chủ cung cấp trang abc.com.
- Dữ liệu trả về (Phần chữ màu cam trong hình): Sau khi máy chủ nhận yêu cầu & xử lý việc đọc danh sách khóa học, dữ liệu sẽ trả về dười dạng JSON (như vd trên) thông tin của khóa học, định dạng này cũng có thể là XML, text, file, … tùy theo người phát triển Web service
Đặc tính của RESTFul Web service
Đặc tính của RESTFul web service là stateless (không lưu trạng thái), nghĩa là thông tin trong hai lần xử lý trên máy chủ là độc lập nhau & không có thông tin nào được giữ lại trên memory sau khi trả dữ liệu về cho mobile app.
Kiểm tra Web service bằng Postman
RESTFul web service có thể được thực thi bằng cách gõ đường dẫn trực tiếp từ trình duyệt, tuy nhiên cách thức này chí có thể gọi xử lý các Web service để Đọc (GET) thông tin. Đối với các Web service để cập nhật (PUT), tạo mới (POST), xóa (DELETE) thông tin sẽ không thể được thiết lập khi gõ đường dẫn trực tiếp trên trình duyệt, chúng tôi sử dụng Postman để gọi thực thi Web service, Postman hỗ trợ thiết lập phương thức GET, POST, PUT, DELETE dễ dàng & có thể lưu, đồng bộ danh sách các Web service giữa các member trong team. Postman là app miễn phí, các bạn có thể tải về sử dụng tại đây: http://getpostman.com
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink
Permalink