0

Mock API trực tiếp trên Chrome với Network Overrides API (DevTools)

Trong quá trình phát triển frontend, chắc hẳn ai cũng từng gặp những tình huống như:

  • Backend chưa xong API
  • Cần test edge cases
  • Muốn giả lập lỗi 500/404
  • Test UI với nhiều loại response khác nhau
  • Muốn debug nhanh mà không cần sửa code backend

Thông thường chúng ta sẽ dùng:

  • Mock server
  • Postman
  • Charles Proxy
  • Requestly
  • Hardcode mock data

Nhưng tất cả đều có một số bất tiện nhất định.

Gần đây mình thử một extension khá thú vị tên là Network Overrides API (DevTools) — cho phép override API response trực tiếp trong Chrome DevTools.

Chrome Extension: https://chromewebstore.google.com/detail/network-overrides-api-dev/holdjgmcnpelgclhopiejilhhkfcmpba


Network Overrides API là gì?

Đây là một Chrome/Edge extension cho phép:

  • Intercept network request
  • Override response body
  • Mock API trực tiếp trong browser
  • Test frontend mà không cần sửa backend
  • Tạo rule bằng URL pattern hoặc regex

Điểm hay là extension hoạt động ngay bên trong DevTools nên workflow khá tự nhiên cho frontend developer.

Theo mô tả extension:

"Intercept and override network response bodies directly in the browser during development and testing."

Extension sử dụng chrome.debugger cùng Chrome DevTools Protocol để chặn và thay đổi response runtime.


Vì sao mình thấy extension này hữu ích?

Thông thường khi muốn mock API nhanh, mình sẽ phải:

  • Setup mock server
  • Sửa env
  • Dùng proxy
  • Hardcode data
  • Hoặc dùng Requestly/Charles

Nhưng với extension này:

  1. Mở DevTools
  2. Chọn request
  3. Override response
  4. Reload page

Xong.

Workflow cực kỳ nhanh cho việc:

  • Test UI state
  • Empty data
  • Error state
  • Permission state
  • Feature demo
  • Reproduce bug

Cài đặt

Cài trực tiếp từ Chrome Web Store:

https://chromewebstore.google.com/detail/network-overrides-api-dev/holdjgmcnpelgclhopiejilhhkfcmpba

Sau khi cài:

  • Open DevTools
  • Xuất hiện tab extension
  • Theo dõi network request realtime

Cách hoạt động

Extension sẽ:

  1. Capture network requests
  2. Match URL theo pattern
  3. Intercept response
  4. Trả về mocked response mới

Ví dụ:

{
  "success": false,
  "message": "Permission denied"
}

Frontend sẽ nhận response giả lập này thay vì response thật từ server.

Điều này cực kỳ hữu ích khi test UI state mà backend chưa support.


Hỗ trợ URL Pattern và Regex

Một điểm mình khá thích là extension hỗ trợ:

  • Exact URL
  • Wildcard
  • Regex pattern

Ví dụ:

/api/users/*

Hoặc:

/api/products/.*

Điều này giúp mock dynamic API dễ dàng hơn nhiều.


Một vài use case thực tế

1. Test Empty State

[]

2. Test Error State

{
  "status": 500,
  "message": "Internal server error"
}

3. Test Permission UI

{
  "canEdit": false,
  "canDelete": false
}

4. Demo feature khi backend chưa xong

Frontend team có thể tự mock response để demo UI trước.


So sánh với các tool khác

Tool Ưu điểm Nhược điểm
Postman Mock Dễ setup Không realtime trong browser
Charles Proxy Mạnh Setup hơi phức tạp
Requestly Nhiều tính năng UI khá nặng
Network Overrides API Nhẹ, nhanh, nằm trong DevTools Chưa nhiều advanced features

Điểm mình thích

1. Workflow cực nhanh

Không cần:

  • Setup proxy
  • Chạy mock server
  • Đổi env

Chỉ cần DevTools là đủ.


2. Tập trung cho frontend developer

UI và flow được thiết kế khá giống DevTools native nên rất dễ làm quen.


3. Local-only

Theo mô tả extension, dữ liệu được lưu local thông qua chrome.storage.local.

Điều này phù hợp cho development workflow cá nhân.


4. Hữu ích cho UI testing

Rất tiện để test:

  • Skeleton loading
  • Empty state
  • Error boundary
  • Retry state
  • Permission matrix

Một vài hạn chế

1. Không thay thế hoàn toàn proxy tool

Nếu cần:

  • SSL debugging
  • Full traffic inspection
  • Advanced rewrite
  • Team collaboration

Thì Charles hoặc Requestly vẫn mạnh hơn.


2. Chỉ phù hợp browser-side testing

Tool này phù hợp nhất cho frontend/UI testing.

Không thay thế backend integration testing.


3. Cần quyền debugger

Extension sử dụng Chrome Debugger Protocol nên sẽ cần quyền khá mạnh trong browser.

Khi dùng extension kiểu này, nên chỉ cài từ nguồn đáng tin cậy.


Góc nhìn cá nhân

Mình nghĩ xu hướng "mock trực tiếp trong browser" sẽ ngày càng phổ biến.

Đặc biệt với:

  • Frontend-heavy apps
  • Micro-frontend
  • SPA
  • Internal tools
  • Dashboard systems

Việc test UI state nhanh mà không phụ thuộc backend giúp tăng tốc development đáng kể.

Network Overrides API là một extension nhỏ nhưng giải quyết đúng pain point của frontend developer.


Kết luận

Nếu bạn là frontend developer và thường xuyên phải:

  • Chờ backend
  • Mock API
  • Test edge cases
  • Debug UI state

Thì đây là một extension đáng thử.

Nó không thay thế hoàn toàn các tool chuyên sâu như Charles hay Requestly, nhưng cho workflow hằng ngày thì cực kỳ tiện.

Thông tin thêm:



All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí