
Thiết kế API REST
Nguyên tắc REST, versioning, phân trang, lọc, HATEOAS, mã trạng thái, OpenAPI/Swagger
1Nguyên tắc cơ bản của REST là gì?
Nguyên tắc cơ bản của REST là gì?
Câu trả lời
REST dựa trên nguyên tắc biểu diễn các tài nguyên có thể truy cập thông qua các URI duy nhất. Mỗi tài nguyên (user, product, order) có một URI và có thể được thao tác thông qua các động từ HTTP chuẩn (GET, POST, PUT, DELETE). Mô hình hướng tài nguyên này cho phép một kiến trúc có khả năng mở rộng và tách rời, nơi máy chủ không lưu trữ trạng thái phiên của client.
2Nên dùng phương thức HTTP nào cho thao tác cập nhật toàn bộ tài nguyên có tính idempotent?
Nên dùng phương thức HTTP nào cho thao tác cập nhật toàn bộ tài nguyên có tính idempotent?
Câu trả lời
PUT có tính idempotent và thay thế hoàn toàn tài nguyên. Gọi PUT nhiều lần với cùng dữ liệu tạo ra kết quả giống như một lần gọi duy nhất. Ngược lại, POST không idempotent (sẽ tạo nhiều tài nguyên), PATCH thực hiện cập nhật một phần, và DELETE xóa tài nguyên. Tính idempotent của PUT đảm bảo an toàn khi retry trong trường hợp lỗi mạng.
3Nên trả về mã HTTP nào sau khi tạo thành công một tài nguyên mới?
Nên trả về mã HTTP nào sau khi tạo thành công một tài nguyên mới?
Câu trả lời
Mã 201 Created cho biết một tài nguyên đã được tạo thành công. Nó đi kèm một header Location trỏ tới URI của tài nguyên mới. Mã 200 OK quá chung chung cho việc tạo, 204 No Content được dùng khi không có body phản hồi, và 202 Accepted báo hiệu việc xử lý bất đồng bộ chưa hoàn tất.
Sự khác biệt chính nào phân biệt API REST với API RPC?
Nguyên tắc statelessness trong REST có nghĩa là gì?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Xử lý lỗi
Cơ bản về Goroutine
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
gRPC
Reflection
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Go Design Patterns
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
Nắm vững Go cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí