JavaRush /Blog Java /Random-VI /Mùa xuân không đáng sợ. Kiểm soát REST của bạn
Павел
Mức độ

Mùa xuân không đáng sợ. Kiểm soát REST của bạn

Xuất bản trong nhóm
NỘI DUNG CHU KỲ CỦA BÀI VIẾT Sử dụng lại tác phẩm của người khác là một vấn đề thiêng liêng đối với bất kỳ nhà phát triển nào 😌 Để tiếp tục, bạn cần hiểu những điều cơ bản về mạng máy tính, đây là một loạt bài viết . Hãy chú ý đến những điểm chính: cách HTTP hoạt động, GET, POST, PUT là gì, trạng thái phản hồi, MVC, đọc riêng về JSON và tuần tự hóa . Sẽ rất hữu ích khi triển khai ví dụ được đề xuất với servlet, điều này sẽ giúp bạn yêu thích spring-boot bằng cả trái tim. Ví dụ về ứng dụng khởi động mùa xuân trong loạt bài này khá đơn giản nhưng nó sẽ giúp bạn hiểu được bản chất của MVC. Dưới đây sẽ có một liên kết đến một dự án thú vị hơn. Để làm quen với REST và cách sử dụng nó trong Spring, hãy đọc ba bài viết này . Trong bài viết đầu tiên bạn sẽ đọc REST là gì. Bài thứ hai nói về yêu cầu và phản hồi, các bạn nhớ đọc và ghi chú ý kiến ​​của Đồng chí Fidel. Bài viết thứ ba sẽ đưa ra một ví dụ thực tế về triển khai trong Spring, cách tạo một ứng dụng cũng không khác nhiều lắm (xem và so sánh rất hữu ích), triển khai nó. Hãy chú ý đến nơi họ nói về HttpStatus, ResponseEntity <?> (nếu <?> khó hiểu, hãy đọc Chương 13. Khái quát hóa từ "Java. Hướng dẫn cho người mới bắt đầu", Herbert Shildt), trong cùng một bài viết hãy đọc về POSTMAN ( Ngoài ra còn có video ngắn về nó ) cài đặt POSTMAN, bạn không cần tất cả các tính năng, hãy xem cách tạo các truy vấn khác nhau. Có các toán tử bậc ba trong ví dụ, hãy làm mới bộ nhớ của bạn nếu bạn quên. Hãy chú ý đến cách bài viết ví dụ thực hiện chèn đậu bằng cách sử dụng @Autowired
@RestController
public class ClientController {

   private final ClientService clientService;

   @Autowired
   public ClientController(ClientService clientService) {
       this.clientService = clientService;
   }
}
Bạn nên lưu ý rằng bắt đầu từ Spring 4.3, chú thích @Autowired có thể bị bỏ qua nếu lớp chỉ có một hàm tạo. Bản thân khung công tác sẽ chỉ ra rằng một hạt đậu cần được triển khai trong hàm tạo. Bạn có thể đọc thêm trong nguồn này . Và nếu cẩn thận thì bạn sẽ có một câu hỏi về cấu trúc của gói dịch vụ , cụ thể là: tại sao lại có giao diện ClientServicelớp công khai ClientServiceImpl - đây là cách làm đúng, sau này chúng ta sẽ nói về lý do tại sao nó cần thiết và chúng ta sẽ nói sẽ sử dụng nó. Đó là tất cả với các bài viết. Trước khi đọc, hãy viết. Như người ta nói: “Không ngày nào không có mã!” Để bắt đầu, hãy tạo một yêu cầu GET đơn giản. Lần trước chúng tôi đã viết một ứng dụng để đầu cơ rau, git clone https://FromJava@bitbucket.org/FromJava/speculation.git git clone git@bitbucket.org:FromJava/speculation.git Mở ứng dụng và trong gói ru. java.rush hãy tạo một gói bộ điều khiển (các bộ điều khiển từ mẫu MVC sẽ được đặt ở đây). Tạo một lớp công khai lớp ProductController
@RestController
@RequestMapping("/speculation")
public class ProductController {

}
Chú thích @RestController cho Spring biết rằng đây là bộ điều khiển nghỉ ngơi. @RequestMapping - Tất cả các phương thức của bộ điều khiển sẽ nhận được yêu cầu có URI bắt đầu bằng chuỗi được chỉ định trong dấu ngoặc chú thích ("/ suy đoán"). Chúng tôi viết phương thức sau trong lớp
@GetMapping("/simple")
public String simple(){
    return "Легкий GET requestик";
}
Chúng tôi khởi chạy dự án, nhập dòng trình duyệt: http://localhost:8080/speculation/simple Chúng tôi nhận được câu trả lời: Yêu cầu GET dễ dàng Một số giải thích: 1. Chúng tôi đã tạo một lớp đánh dấu @RestController là bộ điều khiển, chỉ ra đường dẫn đến nó @RequestMapping ("/ suy đoán") – chú thích này là tùy chọn; không có nó, đường dẫn sẽ bắt đầu bằng "/". 2. Chúng tôi đã tạo một phương thức mà khi được thực thi sẽ trả về một chuỗi (yêu cầu Light GET), đánh dấu nó bằng chú thích @GetMapping (phương thức này dành riêng cho các yêu cầu GET) và chỉ ra đường dẫn đến phương thức ("/simple") 3. Chúng tôi đã khởi chạy dự án (máy chủ) trên cổng 8080 và thực hiện yêu cầu GET tới địa chỉ: server/controller/method (http://localhost:8080/speculation/simple) 4. Public String simple(){ return Phương thức "Người yêu cầu GET dễ dàng" hoạt động cho yêu cầu này; } 5. Kết quả của phương thức được trả về trình duyệt dưới dạng chuỗi “Easy GET request”. Vâng, đó là một sự khởi đầu! Những bài viết hấp dẫn nhất đang chờ đón bạn. Việc nắm vững tài liệu đề xuất ở trên sẽ mất hơn một ngày, không cần phải vội vàng ở đây, chủ đề này rất quan trọng và cần phải hiểu “ăn voi thành từng phần”. Để đào tạo (sau khi nắm vững tài liệu): Hoàn thành bộ điều khiển ứng dụng suy đoán . Tạo các phương thức: 1) Tìm kiếm sản phẩm theo id Sử dụng phương thức ProductService.findById(); Đầu ra ví dụ
{
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": null,
        "salePrice": null
 }
Sau khi triển khai các phương thức điều khiển còn lại, hãy nghĩ: "Tại sao hai trường cuối cùng lại rỗng? Cần phải làm gì để có một số giá trị ở đó?" 2) Xem tất cả sản phẩm trên mặt tiền cửa hàng: Để tìm kiếm tất cả sản phẩm, hãy sử dụng phương thức ProductService.findAll(); Để điền vào các trường đóng gói và đánh dấu, hãy sử dụng ProductService.pack(); ProductService.makeMoney(); Đầu ra phải chứa một mảng JSON liệt kê các sản phẩm, ví dụ:
[
    {
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 100
    },
    {
        "id": 2,
        "name": "Морковь",
        "purchasePrice": 14,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 70
    }
]
3) Thêm sản phẩm mới vào cơ sở dữ liệu (thêm sản phẩm: bắp cải và giá mua sỉ) Sử dụng: ProductService.save(); Phương thức sẽ trả về trạng thái Http tương ứng. 4) Xóa một sản phẩm theo id Để thực hiện việc này, trước tiên hãy triển khai trong ProductService một phương thức chứa sản phẩmRepository.deleteById(); Và sau đó, sử dụng nó trong bộ điều khiển. Phương thức điều khiển phải trả về trạng thái http thích hợp. 5) Thay đổi sản phẩm theo id (thay đổi giá sỉ của sản phẩm và tên sản phẩm) Thao tác này sẽ phức tạp hơn các thao tác trước. Đầu tiên chúng ta cần tìm sản phẩm muốn thay đổi theo id Use ProductService.findById(); Sau đó, trong sản phẩm (đối tượng) tìm thấy, hãy thay thế giá trị của các trường bằng giá trị của các trường của đối tượng nhận được trong nội dung của yêu cầu Đặt (json_object). Bạn có thể thực hiện điều này như sau:
найденный_товар = productService.findById(id);
найденный_товар.setName(an object_json.getName);
найденный_товар.setPurchasePrice(an object_json.getPurchasePrice);
Sau đó, sản phẩm đã thay đổi phải được lưu sản phẩmService.save(found_product); Phương thức sẽ trả về trạng thái Http tương ứng. Nếu bạn gặp vấn đề với phương pháp này, bạn có thể google “đặt yêu cầu java”, chưa ai hủy Internet) Làm việc với bộ điều khiển không kết thúc ở đó, vẫn còn nhiều chủ đề ở phía trước...
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION