Tích hợp ứng dụng trang đơn với Spring Boot - Integrate single page application with Spring Boot
Câu hỏi của môn
axios.get('https://api.example.com/data')axios.send('GET', 'https://api.example.com/data')axios.fetch('https://api.example.com/data')fetch.axios('https://api.example.com/data')Để thực hiện một yêu cầu GET sử dụng Axios, bạn cần sử dụng phương thức get() của Axios. Phương thức này chấp nhận một tham số là URL của API mà bạn muốn yêu cầu. Ví dụ, để yêu cầu dữ liệu từ API 'https://api.example.com/data', bạn có thể sử dụng mã sau: axios.get('https://api.example.com/data'). Phương thức này sẽ gửi một yêu cầu GET đến API và trả về dữ liệu trong dạng JSON. Ngoài ra, bạn cũng có thể sử dụng các tham số khác như headers, params để tùy chỉnh yêu cầu của mình. Ví dụ, để thêm một header 'Authorization' với giá trị 'Bearer token', bạn có thể sử dụng mã sau:
axios.get('https://api.example.com/data', {
headers: {
'Authorization': 'Bearer token'
}
}).
Annotation @RequestParam được sử dụng trong Spring MVC để ánh xạ các tham số truy vấn (query parameters) trong URL đến các tham số phương thức (method parameters) của một phương thức controller. Điều này cho phép bạn dễ dàng lấy giá trị của các tham số truy vấn và sử dụng chúng trong logic của phương thức. Ví dụ, nếu bạn có một phương thức controller như sau: @GetMapping("/users")
public String getUsers(@RequestParam("name") String name, @RequestParam("age") int age) {
...
}thì @RequestParam("name") và @RequestParam("age") sẽ ánh xạ các tham số truy vấn "name" và "age" trong URL đến các tham số phương thức "name" và "age".
Để ánh xạ các yêu cầu HTTP GET đến một phương thức, chúng ta sử dụng annotation @GetMapping trong Spring. Annotation này cho phép chúng ta định nghĩa một phương thức có thể được gọi khi nhận được yêu cầu GET từ client. Ví dụ, nếu chúng ta có một phương thức như sau: @GetMapping("/users")
public List<User> getUsers() {
// logic để lấy danh sách người dùng
}Thì khi client gửi yêu cầu GET đến đường dẫn /users, phương thức getUsers() sẽ được gọi và trả về danh sách người dùng. Annotation @GetMapping là một trong những annotation quan trọng trong Spring, giúp chúng ta xây dựng các ứng dụng web hiệu quả và dễ dàng quản lý.
Để xác định một phương thức xử lý yêu cầu POST và chấp nhận cơ thể yêu cầu, bạn cần sử dụng hai annotation đặc biệt trong Spring MVC. Đầu tiên, bạn cần sử dụng @PostMapping để chỉ định phương thức xử lý yêu cầu POST. Thứ hai, bạn cần sử dụng @RequestBody để chỉ định rằng phương thức này sẽ chấp nhận cơ thể yêu cầu được gửi đi. Điều này cho phép bạn truy cập vào dữ liệu được gửi đi trong cơ thể yêu cầu. Ví dụ, nếu bạn muốn tạo một phương thức xử lý yêu cầu POST để tạo một tài khoản mới, bạn có thể sử dụng @PostMapping và @RequestBody như sau: @PostMapping("/taikhoan")
public ResponseEntity<TaiKhoan> taoTaiKhoan(@RequestBody TaiKhoan taiKhoan) {
// Xử lý tạo tài khoản
}Trong ví dụ trên, @PostMapping chỉ định phương thức xử lý yêu cầu POST, và @RequestBody chỉ định rằng phương thức này sẽ chấp nhận cơ thể yêu cầu được gửi đi.
Để tạo một điểm cuối REST chỉ chấp nhận dữ liệu XML, bạn cần sử dụng annotation @PostMapping với thuộc tính consumes được đặt thành "application/xml". Điều này cho phép Spring MVC chỉ chấp nhận yêu cầu HTTP POST có nội dung dạng XML. Ví dụ, nếu bạn muốn tạo một điểm cuối REST để tạo mới một tài nguyên, bạn có thể sử dụng annotation @PostMapping với consumes được đặt thành "application/xml" như sau: @PostMapping(consumes = "application/xml")
public ResponseEntity<Resource> createResource(@RequestBody Resource resource) {
...
}Trong ví dụ trên, điểm cuối REST sẽ chỉ chấp nhận yêu cầu HTTP POST có nội dung dạng XML, và sẽ sử dụng phương thức createResource để xử lý yêu cầu đó.
Để định nghĩa một phương thức xử lý cả hai định dạng yêu cầu và phản hồi JSON, chúng ta cần sử dụng các annotation @PostMapping, @RequestBody và @ResponseBody. @PostMapping được sử dụng để chỉ định phương thức HTTP được sử dụng để gửi yêu cầu đến server. @RequestBody được sử dụng để ánh xạ dữ liệu từ yêu cầu HTTP sang một đối tượng Java. @ResponseBody được sử dụng để ánh xạ một đối tượng Java sang dữ liệu HTTP. Ví dụ, nếu chúng ta muốn tạo một phương thức xử lý yêu cầu và phản hồi JSON, chúng ta có thể sử dụng các annotation như sau: @PostMapping(value = "/example", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> example(@RequestBody String request) {
// Xử lý yêu cầu và trả về phản hồi
return ResponseEntity.ok("Phản hồi từ server");
}Bằng cách sử dụng các annotation này, chúng ta có thể định nghĩa một phương thức xử lý cả hai định dạng yêu cầu và phản hồi JSON.