Nếu bạn đang xây dựng giao diện người dùng (UI) trước khi backend tồn tại, bạn cần dữ liệu để hiển thị, và DummyJSON là một trong những cách nhanh nhất để có được dữ liệu đó. Đây là một API REST giả miễn phí, được lưu trữ, cung cấp các sản phẩm, người dùng, giỏ hàng thực tế và nhiều hơn nữa qua HTTP thuần túy, không yêu cầu đăng ký. Hướng dẫn này giải thích những gì DummyJSON cung cấp cho bạn, cách nó so sánh với các API thử nghiệm công khai khác, và phải làm gì khi dữ liệu giữ chỗ cố định không còn đủ dùng nữa.
DummyJSON là gì?
DummyJSON là một API JSON giữ chỗ miễn phí. Bạn gửi một yêu cầu đến một điểm cuối công khai, và nó trả về dữ liệu mẫu có cấu trúc, đáng tin cậy. Không cần thiết lập cơ sở dữ liệu và không cần đăng ký khóa. Nó tồn tại để các nhà phát triển frontend, sinh viên và bất kỳ ai đang tạo mẫu có thể truy cập một điểm cuối mạng thực sự thay vì mã hóa cứng các mảng trong mã của họ.

Dữ liệu là giả nhưng nhất quán. Một sản phẩm có tiêu đề, giá, đánh giá, số lượng tồn kho và danh mục. Một người dùng có tên, email, địa chỉ và công ty. Sự nhất quán đó làm cho DummyJSON hữu ích để kết nối các bảng, thẻ, phân trang và trang chi tiết trông giống như thật. Bởi vì các bản ghi được lồng và nhập liệu theo cách dữ liệu sản xuất thường có, bạn có thể xây dựng các bộ lọc, điều khiển sắp xếp và chế độ xem chi tiết mà không cần phải tự tạo dữ liệu thử nghiệm trước.
DummyJSON cung cấp mọi thứ qua HTTPS dưới dạng JSON, vì vậy nó hoạt động tương tự từ một trình duyệt fetch, một ứng dụng di động, một lệnh curl hoặc một script phía máy chủ. Không có gì để cài đặt. Bạn chỉ cần trỏ một yêu cầu đến một URL và bạn nhận được dữ liệu trả về, đây chính xác là điều bạn muốn trong những giờ đầu của một dự án khi API thực sự chưa tồn tại.
Nó là một công cụ học tập và tạo mẫu, và nó làm tốt công việc đó. Khi bạn cần một điểm cuối để lấy dữ liệu trong một hướng dẫn hoặc một bản demo nhanh, nó giúp bạn tiết kiệm thời gian đáng kể.
Các điểm cuối, xác thực và giới hạn của DummyJSON
DummyJSON hiển thị một số bộ sưu tập tài nguyên. Những bộ phổ biến là:
/products(sản phẩm), các mặt hàng trong danh mục với giá, tồn kho và đánh giá/users(người dùng), những người có địa chỉ, email và thông tin công ty/carts(giỏ hàng), giỏ hàng được liên kết với người dùng/posts(bài viết) và/comments(bình luận), nội dung kiểu blog/todos(việc cần làm), các mục công việc/recipes(công thức nấu ăn) và/quotes(trích dẫn), các bộ nội dung bổ sung
Mỗi bộ sưu tập đều hỗ trợ các mẫu mà bạn mong đợi từ một API REST. Bạn có thể lấy tất cả các bản ghi, lấy một bản ghi theo ID, tìm kiếm, lọc theo danh mục và phân trang với limit và skip. Một tham số select cắt bớt phản hồi theo các trường cụ thể, và một tham số delay (0 đến 5000 ms) cho phép bạn mô phỏng một mạng chậm để bạn có thể kiểm tra các trạng thái tải.
Đây là một lệnh đọc cơ bản:
curl https://dummyjson.com/products?limit=5&skip=10
Xác thực sử dụng điểm cuối đăng nhập và một bearer token. Bạn gửi thông tin đăng nhập đến /auth/login, nhận lại một token, và gửi nó trong các yêu cầu được bảo vệ:
# 1. Log in to get a token
curl -X POST https://dummyjson.com/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"emilys","password":"emilyspass"}'
# 2. Use the token on an authenticated request
curl https://dummyjson.com/auth/me \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN_HERE'
Các thao tác ghi cũng được hỗ trợ. Bạn có thể gửi các yêu cầu POST, PUT, PATCH và DELETE, và API phản hồi như thể thay đổi đã xảy ra. Điểm mấu chốt: các thao tác ghi đó chỉ được mô phỏng. DummyJSON trả về một bản ghi trông như đã được cập nhật hoặc tạo mới, nhưng không có gì được lưu trữ vĩnh viễn. Làm mới và sản phẩm “mới” của bạn sẽ biến mất. Đó là thiết kế dành cho một dịch vụ công cộng dùng chung, và đây là giới hạn quan trọng nhất cần hiểu. Tài liệu không công bố giới hạn tốc độ nghiêm ngặt, nhưng hãy sử dụng bất kỳ điểm cuối dùng chung miễn phí nào một cách nhẹ nhàng và đừng thực hiện kiểm tra tải lên đó.
Để có cái nhìn toàn diện hơn về những gì có ngoài DummyJSON, tổng hợp các API miễn phí dành cho nhà phát triển bao gồm các lựa chọn trên nhiều danh mục.
DummyJSON so với JSONPlaceholder so với Reqres
DummyJSON không phải là API REST giả miễn phí duy nhất. Hai API được so sánh nhiều nhất với nó là JSONPlaceholder và Reqres. Chúng có điểm tương đồng, nhưng mỗi cái lại có một hướng khác nhau.
| Công cụ | Tốt nhất cho | Tài nguyên | Luồng xác thực | Ghi có lưu trữ không? |
|---|---|---|---|---|
| DummyJSON | Bản demo kiểu thương mại điện tử thực tế | Sản phẩm, người dùng, giỏ hàng, bài viết, công thức nấu ăn, v.v. | Điểm cuối đăng nhập + bearer token | Không (mô phỏng) |
| JSONPlaceholder | Hướng dẫn CRUD nhanh, thiết lập tối thiểu | Bài viết, bình luận, người dùng, việc cần làm, album, ảnh | Không có | Không (mô phỏng) |
| Reqres | Bản demo luồng xác thực và yêu cầu/phản hồi | Người dùng, mock đăng ký/đăng nhập | Mock đăng ký/đăng nhập | Không (mô phỏng) |
Mô hình tương tự nhau ở cả ba. Bạn nhận được dữ liệu cố định, chủ yếu chỉ để đọc, các thao tác ghi là giả, và bạn không thể thay đổi hình dạng của dữ liệu trả về. JSONPlaceholder chạy trên json-server, đó là lý do tại sao mô hình dữ liệu của nó có vẻ rất chung chung. DummyJSON thắng thế khi bạn muốn dữ liệu giống một cửa hàng thực tế. Reqres tiện dụng khi bạn đặc biệt muốn demo một màn hình đăng nhập.
Các nguồn chính thức đáng được đánh dấu trang: JSONPlaceholder và kho lưu trữ GitHub của DummyJSON nếu bạn muốn tự lưu trữ hoặc đọc mã nguồn.
Khi dữ liệu giữ chỗ cố định không còn đủ
Các API giả được lưu trữ sẽ nhanh chóng gặp giới hạn khi dự án của bạn trở nên cụ thể hơn. Bạn sẽ cảm nhận được điều đó khi:
- Ứng dụng của bạn cần các trường mà DummyJSON không có. Một đối tượng
subscription_tierhoặcfeature_flagsđơn giản là không có trong schema, và bạn không thể thêm chúng. - Bạn cần các thao tác ghi được lưu trữ vĩnh viễn. Xây dựng luồng giỏ hàng hoặc bảng điều khiển quản trị có nghĩa là tạo một bản ghi và đọc lại nó. Các thao tác ghi mô phỏng sẽ phá vỡ vòng lặp đó.
- Bạn cần kiểm tra các đường dẫn lỗi. Một ứng dụng thực sự phải xử lý lỗi
429,500hoặc một tải trọng không đúng định dạng. Các API chỉ trả về thành công cố định sẽ không tạo ra những lỗi đó theo yêu cầu. - Dữ liệu của bạn phải khớp với hợp đồng OpenAPI của riêng bạn để frontend và backend thống nhất trước khi máy chủ thực tế được triển khai.
Đây là lúc bạn ngừng mượn API giả của người khác và bắt đầu tự tạo API của riêng mình. Bạn muốn sự tiện lợi tương tự mà không cần backend, nhưng với schema, tên trường và các phản hồi mà bạn kiểm soát.
Cách xây dựng API REST giả tùy chỉnh của riêng bạn với Apidog
Apidog là một nền tảng API cho phép thiết kế, kiểm thử, tài liệu hóa và tạo mock API tại một nơi. Máy chủ mock của nó là phần thay thế một API giả được lưu trữ khi bạn đã vượt quá giới hạn của dữ liệu cố định. Thay vì chấp nhận bất cứ thứ gì DummyJSON trả về, bạn định nghĩa điểm cuối và cấu trúc dữ liệu, và Apidog sẽ tạo ra các phản hồi thực tế phù hợp. Để làm theo, hãy tải xuống Apidog và tạo một dự án miễn phí.
Đây là quy trình:
1. Định nghĩa điểm cuối và schema của bạn. Tạo một điểm cuối như GET /products và mô tả các trường phản hồi: id, title, price, stock, category. Bạn có thể làm điều này bằng tay hoặc nhập một tệp OpenAPI/Swagger hiện có để mock khớp với hợp đồng thực tế của bạn.
2. Để mock thông minh tạo dữ liệu. Apidog đọc tên và kiểu trường của bạn, sau đó tự động tạo ra các giá trị hợp lý. Một trường tên email trả về một email, price trả về một số, createdAt trả về một ngày. Không cần phải viết dữ liệu thử nghiệm bằng tay. Nếu bạn đã từng sử dụng Faker trước đây, đây là ý tưởng tương tự được tích hợp sẵn trong nền tảng. Hướng dẫn về tạo dữ liệu mock từ schema OpenAPI sẽ trình bày chi tiết về khía cạnh dựa trên schema.
3. Tùy chỉnh giá trị và các trường hợp ngoại lệ. Cần một phạm vi cụ thể cho price, một enum cố định cho status, hay một phản hồi 500 có chủ đích để kiểm tra xử lý lỗi? Bạn đặt quy tắc cho từng trường và từng phản hồi. Đây là phần mà các API được lưu trữ không thể làm được, bởi vì bạn sở hữu định nghĩa.
4. Chạy máy chủ mock và gọi nó. Apidog cung cấp cho bạn một URL trực tiếp. Trỏ frontend của bạn đến nó giống hệt như bạn sẽ trỏ đến DummyJSON, chỉ khác là giờ đây mọi trường và mã trạng thái đều thuộc về bạn:
curl https://<your-mock-host>/products?limit=5
Bởi vì mock được tạo ra từ schema của bạn, khi đặc tả API của bạn thay đổi thì mock cũng thay đổi theo. Dữ liệu giả của bạn và hợp đồng thực tế của bạn sẽ không bao giờ sai lệch. Nếu bạn muốn các tập dữ liệu thực tế, đa dạng hơn, phương pháp trong tạo dữ liệu thử nghiệm API thực tế kết hợp tốt với phát triển theo hướng mock.

Sự đánh đổi thẳng thắn: DummyJSON thắng về tốc độ cho một bản demo dùng một lần, vì không có gì để cấu hình. Apidog thắng thế ngay khi bạn cần schema của riêng mình, các thao tác ghi có cảm giác lưu trữ, các lỗi có thể kiểm soát, hoặc một mock luôn đồng bộ với API thực tế mà bạn sẽ triển khai.
Các câu hỏi thường gặp
DummyJSON có miễn phí để sử dụng không?
Có. DummyJSON miễn phí và không cần khóa API. Bạn có thể gọi các điểm cuối công khai của nó trực tiếp từ trình duyệt, curl hoặc ứng dụng của bạn. Giống như bất kỳ dịch vụ miễn phí dùng chung nào, nó được dùng để tạo mẫu và học tập, không phải cho lưu lượng truy cập sản xuất hoặc kiểm tra tải.
DummyJSON có lưu dữ liệu tôi tạo hoặc cập nhật không?
Không. Các yêu cầu POST, PUT, PATCH và DELETE trả về một phản hồi trông có vẻ thành công, nhưng không có gì được lưu trữ trên máy chủ. Lần đọc tiếp theo sẽ trả về dữ liệu gốc. Khi bạn cần các thao tác ghi thực sự được lưu trữ, hãy xây dựng mock của riêng bạn. Hướng dẫn về mock API giải thích sự khác biệt giữa mô phỏng (simulated) và mock có trạng thái (stateful mocking).
Sự khác biệt giữa DummyJSON và một máy chủ mock là gì?
DummyJSON là một tập dữ liệu cố định, được lưu trữ mà mọi người cùng chia sẻ. Một máy chủ mock, như cái trong Apidog, chạy theo schema của bạn và trả về dữ liệu cùng mã trạng thái mà bạn định nghĩa. Sử dụng DummyJSON cho các bản demo chung, và một máy chủ mock khi dữ liệu phải khớp với API của riêng bạn.
Tôi có thể nhận được dữ liệu thực tế thay vì các giữ chỗ hiển nhiên không?
Có, nếu bạn tạo nó từ một schema. Các công cụ dựa trên schema đọc tên và kiểu trường của bạn và tự động tạo ra các giá trị đáng tin cậy, vì vậy một trường email trông giống như một email và price trông giống như một giá. Đó là lý do chính mà các nhóm chuyển từ một API giả cố định sang mock của riêng họ.
Kết luận
DummyJSON là một API REST giả miễn phí vững chắc. Đây là cách nhanh nhất để hiển thị giao diện người dùng với các sản phẩm, người dùng và giỏ hàng trông thực tế mà không cần viết một dòng mã backend nào, và đối với các hướng dẫn hoặc nguyên mẫu nhanh, nó rất khó bị đánh bại. Các giới hạn xuất hiện khi bạn cần các trường riêng của mình, các thao tác ghi được lưu trữ vĩnh viễn, các lỗi có thể kiểm soát hoặc dữ liệu theo dõi hợp đồng API của bạn.
Khi bạn đạt đến điểm đó, hãy tạo API REST giả tùy chỉnh của riêng bạn thay vì mượn một API cố định. Apidog cho phép bạn định nghĩa schema, tự động tạo dữ liệu mock thực tế từ đó và giữ mock đồng bộ với API bạn sẽ triển khai. Dùng thử miễn phí và biến đặc tả của bạn thành một mock hoạt động chỉ trong vài phút.
