Trang chủ Development

CRUD là gì? Thực hành CRUD

CRUD là gì? Thực hành CRUD

CRUD là gì?

Khi xây dựng các API, các mô hình cung cấp bốn loại chức năng cơ bản. Mô hình phải có khả năng Create, Read, Update, và Delete tài nguyên. Các nhà khoa học máy tính thường gọi tên các các chức năng này bằng từ viết tắt CRUD. Một mô hình cần có khả năng thực hiện tối đa bốn chức năng này. Nếu một action không thể được mô tả bởi một trong bốn thao tác này, thì rất có thể nó một mô hình của riêng chính nó mà thôi.

>> Tham khảo thêm: API là gì? Phân loại và Ví dụ về API

CRUD paradigm rất phổ biến trong việc xây dựng các ứng dụng web, bởi vì nó cung cấp một framework để nhắc nhở các developer về cách xây dựng các mô hình đầy đủ và hữu ích. Ví dụ: hãy hình dung một hệ thống để theo dõi các đầu sách trong thư viện. Trong cơ sở dữ liệu thư viện giả định này, chúng ta có thể tưởng tượng rằng sẽ có một tài nguyên sách (books resource), nơi lưu trữ các đối tượng sách (book object). Giả sử đối tượng sách trông như sau:

"book": {

 "id": <Integer>,

 "title": <String>,

 "author": <String>,

 "isbn": <Integer>

}

Để làm cho hệ thống thư viện này có thể sử dụng được, chúng tôi muốn đảm bảo có các cơ chế rõ ràng để hoàn thành các CRUD operation:

Create - Sử dụng khi một library book mới được được thêm vào danh mục. Chương trình gọi hàm này sẽ cung cấp các giá trị cho "title", "author", và "isbn". Sau khi chức năng này được gọi, sẽ có một entry mới trong books resource tương ứng với cuốn sách mới này. Ngoài ra, mục nhập mới được gán một id duy nhất, có thể được sử dụng để truy cập vào tài nguyên này.

Read - Sử dụng để xem tất cả các sách hiện có trong danh mục. Lệnh gọi hàm này sẽ không thay đổi các sách trong danh mục - nó sẽ đơn giản truy xuất tài nguyên và hiển thị kết quả. Cuốn sách được truy xuất sẽ không được sửa đổi, chỉ lấy ra.

Update - Phải có một chức năng để gọi khi thông tin về một cuốn sách phải được thay đổi. Chương trình gọi hàm sẽ cung cấp các giá trị mới cho "title", "author", và "isbn". Sau khi gọi hàm, mục nhập tương ứng trong tài nguyên sách sẽ chứa các trường mới được cung cấp.

Delete - Nên có một chức năng i để xóa một cuốn sách thư viện khỏi danh mục. Chương trình gọi hàm sẽ cung cấp một hoặc nhiều giá trị ("title", "author", và/hoặc "isbn") để xác định sách, và sau đó cuốn sách này sẽ bị xóa khỏi tài nguyên. Sau khi chức năng này được gọi, tài nguyên sách chứa tất cả các sách trước đây, ngoại trừ sách đã bị xóa.

Thực hành CRUD

Các hàm để Create, Read, Update, và Delete là các thành phần cơ bản của một storage model. Hãy tưởng tượng bạn đang cố gắng thiết kế một hệ thống theo dõi các lớp tập luyện, bao gồm tên của mỗi lớp, người dạy nó, và thời gian của lớp. Một đối tượng lớp mẫu sẽ trông giống như sau:

{

 "class": {

   "id": 1    

   "name": "Pure Strength",

   "trainer": "Bicep Bob",

   "duration": 1.5

  }

}

Tất cả các lớp được lưu trữ trong một tài nguyên lớp học tại www.musclecademy.com/classes.

Đối với mỗi hoạt động CRUD, hãy viết câu trả lời cho các câu hỏi sau:

Bạn cần triển khai những lộ trình nào để cung cấp mô hình lớp tập luyện với chức năng CRUD này và các HTTP verb tương ứng của chúng là gì?

Mỗi route  có hiệu lực gì trên cơ sở dữ liệu?

Response body cho mỗi route return là gì?

Response code cho mỗi route return là gì?

CRUD practice answer

1. Create

Route: POST /classes

Ảnh hưởng đến Database: Thêm lớp được cung cấp trong request body vào cơ sở dữ liệu

Response Body: { "class": The Newly-Created Class }

Success Response Code: 201

2. Read (All Classes)

Route: GET /classes

Ảnh hưởng đến  Database: None

Response Body: { "classes": [ Array of All Saved Classess ] }

Success Response Code: 200

3. Read (One Class)

Route: GET /classes/:id

Ảnh hưởng đến Database: None

Response Body: { "class": The class with the specified ID }

Success Response Code: 200

4. Update

Route: PUT /classes/:id

Ảnh hưởng đến Database: Cập nhật lớp với ID được chỉ định để có thông tin lớp được cung cấp trong request body.

Response Body: { "class": The updated class now saved in the database }

Success Response Code: 200

5) Delete

Route: DELETE /classes/:id

Ảnh hưởng đến  Database: Loại bỏ lớp với ID được chỉ định từ cơ sở dữ liệu.

Response Body: None

Success Response Code: 204

Nguồn: Tech.vccloud.vn

>> Có thể bạn quan tâm: SDK là gì? Sự khác nhau giữa API và SDK

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành BizFly Cloud - là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: BizFly Cloud Server, BizFly CDN, BizFly Load Balancer, BizFly Pre-built Application, BizFly Business Mail, BizFly Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của BizFly Cloud tại đây.