Chương 1: Tổng quan 9 do an Báo cáo đồ án tốt nghiệp Chương 2. Tổng quan về REST và RESTful API 2. Khái niệm API (Application Programming Interface) là một tập hợp các quy tắc, cơ chế mà dựa vào đó các ứng dụng có thể tương tác với nhau, cho phép kết nối giữa các ứng dụng, thực hiện thao tác truy xuất hoặc cập nhật dữ liệu. 1 Vị trí của API trong luồng giao tiếp của ứng dụng REST (Representational State Transfer) được giới thiệu lần đầu vào năm 2000 trong luận văn tiến sĩ của Thomas Fielding là hệ thống các ràng buộc (constraints), quy ước đối với một hệ thống.
RESTful API là sự vận dụng các tiêu chuẩn, ràng buộc REST vào trong việc thiết kế, xây dựng API để quản lí thao tác với các tài nguyên ứng dụng. 2 Thiết kế REST API Chương 2: Cơ sở lý thuyết 10 do an Báo cáo đồ án tốt nghiệp Khi một hệ thống đảm bảo các ràng buộc REST thì có thể gọi là RESTful. Các ràng buộc REST bao gồm: Kiến trúc client-server: Ứng dụng REST nên có kiến trúc Client-Server. Trong đó Client là nơi gửi yêu cầu thao tác với tài nguyên Server là nơi lưu trữ các tài nguyên.
Client và server sẽ được phát triển độc lập với nhau. Client không cần phải biết về business logic và Server không cần quan tâm đến giao diện người dùng. 3 Kiến trúc client-sever của REST Stateless (phi trạng thái): Server và client sẽ không lưu bất kì trạng thái nào của nhau trong phiên làm việc, điều này giúp máy chủ không phải duy trì, cập nhật các trạng thái làm việc. Mỗi request chứa đầy đủ thông tin (query params, header, URI).
Đây có thể sẽ là một hạn chế trong trường hợp client cần gửi một lượng lớn dữ liệu về server thì hệ thống sẽ tiêu tốn nhiều băng thông Cacheability (có khả năng cache): Các response có thể được lấy ra từ cache của server giúp giảm thiểu thời gian xử lý, để đảm bảo sự chính xác và tránh sự sai lệch do trùng lập của các response khi lấy từ cache thì các request tương ứng với từng response phải có tính duy nhất. Layered system (phân lớp hệ thống): Hệ thống được chia làm nhiều lớp (repository, service, controller), làm cho các thành phần trong hệ thống tách biệt nhau, dễ dàng mở rộng và phát triển hệ thống. Mỗi lớp chỉ tương tác với lớp ngay phía trên hoặc dưới nó. Chương 2: Cơ sở lý thuyết 11 do an Báo cáo đồ án tốt nghiệp Hình 2.
4 Ví dụ về cách thức phân lớp hệ thống trong REST Uniform interface (chuẩn hoá các interface): đây là ràng buộc mà quyết định sự khác biệt giữa REST API và non-REST API. Với ràng buộc này người thiết kế cần phải thiết kế cách giao tiếp giữa các ứng dụng theo một chuẩn nào đó sao cho dù là nền tảng web hay mobile đều có thể truy cập được. Chính vì việc có những quy ước chuẩn cho việc giao tiếp giữa các thành phần trong hệ thống đã giúp cho việc truy cập đến các tài nguyên trên server trở nên linh hoạt hơn. Từ đó mà có nhiều API được xây dựng dựa trên REST 2.
Cách thức hoạt động Request được gửi từ Client đến Server dưới dạng web URL như HTTP GET, POST, PUT, DELETE, … (tương ứng với thao tác CRUD, thêm, lấy, sửa, xóa dữ liệu). Sau đó Server sẽ trả về dữ liệu tương ứng dưới dạng HTML, XML, Image hoặc JSON. Hiện nay JSON là dạng dữ liệu trả về phổ biến trong thiết kế Web services. Chương 2: Cơ sở lý thuyết 12 do an Báo cáo đồ án tốt nghiệp Hình 2.
5 Cách thức hoạt động của REST API 2. Ưu điểm Hiệu năng (Performance): Sử dụng REST trong thiết kế giúp tăng hiệu năng của hệ thống. Tính khả biến (Modifiability): với các hệ thống cần thay đổi các tài nguyên liên tục, sử dụng REST với việc tạo request đơn giản sẽ giúp việc thực hiện các thay đổi trở nên đơn giản hơn. Tính mở rộng (Scalability): nhờ vào ràng buộc Layered system chi hệ thống thành nhiều lớp nhỏ giúp cho hệ thống dễ dàng mở rộng hơn Tính linh hoạt (Portability): việc chuẩn hoá interface (ràng buộc Uniform Interface) giúp hệ thống trở nên linh hoạt hơn, có thể sử dụng cho cho nhiều nền tảng khác nhau như mobile, web,.
Trong sáng (Visibility): Các request rõ ràng, dễ hiểu Đơn giản (Simplicity): cách thức xây dựng rất đơn giản Tính tin cậy (Realiability): khó để xảy ra lỗi trong giao tiếp giữa các thành phần trong hệ thống. Nhược điểm So với SOAP (Simple Object Access Protocol) thì API có phần kém hơn về độ bảo mật. Do ràng buộc Stateless nên các trạng thái của client và server không được lưu trữ trong trường hợp khối lượng thông tin phải truyền tải lớn hơn, gây tốn tài nguyên hệ thống. Chỉ hoạt động dựa trên giao thức HTTP.
Tổng quan về framework Vuejs 2. Giới thiệu về framework Vuejs Vue.js là một JavaScript framework bao gồm rất nhiều các công cụ tùy chọn khác nhau phục vụ cho việc xây dựng các giao diện tương tác với người dùng. Về mặt kĩ thuật Vuejs sử dụng mô hình MVVM (Model View View Model) và tập trung vào Chương 2: Cơ sở lý thuyết 13 do an Báo cáo đồ án tốt nghiệp lớp ViewModel của mẫu MVVM, kết nối View và Model thông qua các ràng buộc dữ liệu hai chiều các thao tác DOM thực tế và định dạng đầu ra được abstracted thành Directives và Filters. Với mục tiêu là cung cấp các cách thức kết nối với các API nhanh nhất có thể, Vuejs không hẳn là một framework đầy đủ mà được thiết kế để xây dựng nên một lớp view đơn giản và linh hoạt, thích hợp với các nhu cầu xây dựng phát triển giao diện nhanh.
6 Mô hình MVVM trong Vuejs 2. Ưu điểm của Vuejs Kích thước nhỏ gọn: tỷ lệ thành công của JavaScript framework sẽ phụ thuộc vào kích thước của nó. Kích thước càng nhỏ thì công năng sử dụng càng nhiều. Kích thước của vue.js framework là 18–21KB, người dùng sẽ không mất nhiều thời gian để tải xuống và sử dụng.
Dễ dàng để tìm hiểu và vận dụng vào việc phát triển ứng dụng. Nhờ cấu trúc đơn giản của vue.js, người dùng có thể dễ dàng thêm vuejs vào dự án website đang thực hiện của mình. Các ứng dụng có quy mô nhỏ cũng như quy mô lớn đều có thể được phát triển thông qua framework này. Cấu trúc của vuejs đơn giản giúp người dùng dễ dàng nhận biết và phát hiện lỗi trong trường hợp có vấn đề phát sinh trong code.
Tích hợp đơn giản: Vue.js cũng là framewoek được các web developer sử dụng khá phổ biến nhờ việc dễ dàng trong quá trình tích hợp với các ứng dụng hiện có. Sự tiện lợi này xuất phát từ Vue.js được xây dựng dựa trên JavaScript framework do đó có thể tích hợp được vào các ứng dụng xây dựng trên JavaScript tương đối đơn giản. Chương 2: Cơ sở lý thuyết 14 do an Báo cáo đồ án tốt nghiệp Tài liệu chi tiết: hệ thống tài liệu về Vue.js đầy đủ và toàn diện giúp cho người học dễ tìm hiểu và tiếp cận. Tính linh hoạt: Vue.js cho phép người dùng viết mẫu trong các tệp HTML.
Tính linh hoạt của Vue.js cũng giúp các developer phát triển React.js và bất kỳ JavaScript framework mới nào cảm thấy dễ hiểu khi tiếp cận. Giao tiếp 2 chiều (two ways binding): Vue.js cũng hỗ trợ việc giao tiếp hai chiều nhờ kiến trúc MVVM khá dễ dàng trong việc xử lý các HTML block. Nhược điểm của Vuejs Vuejs mặc dù có thể áp dụng vào các dự án lớn như không phù hợp. Vì thời gian ra đời có phần chậm hơn các framework khác như Reactjs nên mức độ phổ biến của Vuejs có phần kém hơn, cộng đồng cũng nhỏ hơn nên vấn đề tìm kiếm các sự hỗ trợ khi gặp vấn đề cũng gặp nhiều hạn chế.
Tổng quan về Spring Framework 2. Giới thiệu về Spring Framework Spring là một framework rất phổ biến đối với lập trình viên Java và được dùng rất nhiều trong việc xây dựng nên các ứng dụng bằng ngôn ngữ Java nói chung và ứng dụng Web nói riêng. Spring Framework có kích thước gọn nhẹ, có thể được dùng để xây dựng nên các ứng dụng có hiệu năng cao. Spring có các tính năng hỗ trợ nhà phát triển có thể thiết kế ứng dụng có tính tái sử dụng code cao, cũng như kiểm thử dễ dàng nhờ vào module Test của Spring.
Chương 2: Cơ sở lý thuyết 15 do an Báo cáo đồ án tốt nghiệp Hình 2. 7 Các modules và kiến trúc của Spring Framework 2. Ưu điểm của Spring Framework Spring Framework cung cấp, định nghĩa nên những template cho những công nghệ như JDBC, Hibernate, JPA để thao tác với cơ sở dữ liệu. Vì thế giảm đi lượng code cần viết một cách đáng kể do Spring đã lược bớt nhưng bước cơ bản của các công nghệ trên.
Spring Framework có tính loose coupling (liên kết lỏng lẻo) nhờ vào tính chất Dependecy Injection. Cũng nhờ vào tính chất này mà các ứng dụng Spring được phát triển nhanh chóng và dễ dàng kiểm thử hơn. Spring gọn nhẹ, Spring Framework không bắt buộc lập trình viên phải kế thừa bất kì lớp hoặc implement interface nào. Spring hỗ trợ cho nhà phát triển nhiều tính năng khác như: caching, validation, transactions, formatting,….
Chương 2: Cơ sở lý thuyết 16 do an Báo cáo đồ án tốt nghiệp 2. Spring Boot và Spring MVC Bảng 2. 1 So sánh Spring Boot và Spring MVC Spring Boot Spring MVC Spring Boot là một module của Spring Spring MVC là một framework web dựa giúp xây dựng và đóng gói ứng dụng dễ trên mô hình Model-View-Controller sử dàng. dụng Spring framework Cung cấp các cấu hình mặc định giúp dể Cung cấp các tính năng để xây dựng nên dàng khởi tạo nên một dự án sử dụng một ứng dụng web.
Spring framework Nhà phát triển không cần phải cấu hình Không cung cấp các cấu hình mặc định, thủ công nhà phát triển phải cấu hình thủ công Tốn ít thời gian để tạo và phát triển sản Cần nhiều thời gian hơn cho việc tạo và phẩm phát triển sản phẩm Tích hợp môi trường deploy bên ngoài Cần phải bắt buộc cài đặt và tích hợp môi là không bắt buộc vì Spring boot có tích trường deploy bên ngoài để chạy sản hợp sẵn một server apache để deploy phẩm ứng dụng Run on Server (apache,…) Run on Spring Boot App Chương 2: Cơ sở lý thuyết 17 do an Báo cáo đồ án tốt nghiệp Chương 3: PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU 3. Yêu cầu người dùng Bảng 3.