Cách định dạng JSON để gỡ lỗi nhanh hơn
Phản hồi API được rút gọn sẽ ẩn các lỗi một cách rõ ràng. Tìm hiểu quy trình làm việc có thể lặp lại—in đẹp, xác thực cấu trúc, giải mã JWT và kiểm tra biểu thức chính quy—bằng cách sử dụng các công cụ trình duyệt giúp duy trì tải trọng trên máy của bạn.
Khi một API trả về một lượng lớn JSON được rút gọn, quá trình gỡ lỗi sẽ chậm lại trước khi bạn tìm thấy lỗi thực sự. Các phím mờ cùng nhau, thiếu dấu phẩy ẩn trong các chuỗi dài và các mảng lồng nhau trở nên không thể quét được. In đẹp không phải là mỹ phẩm—đó là cách bạn biến định dạng truyền tải mờ đục thành thứ gì đó mà mắt bạn có thể phân tích trong vài giây.
Sao chép phản hồi thô từ tab mạng, thiết bị đầu cuối hoặc tệp nhật ký của trình duyệt của bạn. Dán nó vào Trình định dạng JSON trên Power Tools. Chọn mức thụt lề—hai dấu cách cho nhật ký nhỏ gọn, bốn dấu cách khi bạn chia sẻ đoạn mã trong phần đánh giá mã. Trình định dạng xác thực cú pháp khi nó hiển thị. Nếu dấu phẩy ở cuối hoặc khóa không có dấu ngoặc kép phá vỡ tài liệu, bạn sẽ thấy vị trí lỗi ngay lập tức thay vì đoán dòng nào bị lỗi.
Lỗi xác thực rơi vào một số loại có thể dự đoán được. Một câu trích dẫn bị thiếu thường dẫn đến hàng tá thông điệp sai lệch; khắc phục sự cố được báo cáo đầu tiên và định dạng lại. Các số được lưu dưới dạng chuỗi—"200" thay vì 200—là JSON hợp lệ nhưng có thể phá vỡ các so sánh nghiêm ngặt trong ứng dụng của bạn; làm nổi bật những cái đó trong khi đọc đầu ra thụt lề. Khóa rỗng so với khóa vắng mặt đóng vai trò quan trọng trong điểm cuối PATCH: JSON được định dạng giúp hiển thị rõ ràng khi một trường rõ ràng là rỗng thay vì bị thiếu.
Khi tải trọng có thể đọc được, hãy gỡ lỗi một cách chiến lược thay vì đọc từ trên xuống dưới. Xác định đường bao: Trình bao bọc HTTP thường đặt dữ liệu bên dưới dữ liệu, kết quả hoặc mục. So sánh hình dạng bạn mong đợi—mảng so với đối tượng—với những gì đã có. Nếu liên quan đến phân trang, hãy xác nhận các trường trang, tổng và con trỏ trước khi đi sâu vào các bản ghi riêng lẻ.
Lỗi xác thực thường liên quan đến mã thông báo truy cập JWT. Khi API trả về 401 hoặc 403, hãy dán mã thông báo mang—không có tiền tố "Bearer " nếu bộ giải mã yêu cầu JWT thô—vào công cụ Bộ giải mã JWT. Trước tiên, hãy kiểm tra yêu cầu exp: mã thông báo đã hết hạn giải thích các lỗi đột ngột xuất hiện "ngẫu nhiên" do đồng hồ vượt quá ranh giới. Kiểm tra iss và aud nếu dịch vụ của bạn xác thực nhà phát hành hoặc đối tượng. Phần tải trọng hiển thị các vai trò, ID đối tượng thuê và các xác nhận quyền sở hữu tùy chỉnh mà chương trình phụ trợ của bạn có thể đọc sai nếu các loại khác nhau giữa các dịch vụ.
Không bao giờ dán mã thông báo sản xuất vào các thùng dán công khai hoặc ảnh chụp màn hình trò chuyện có hiển thị các xác nhận quyền sở hữu. Giải mã dựa trên trình duyệt trên máy của chính bạn giúp giữ bí mật khỏi máy chủ của bên thứ ba, nhưng màn hình và bảng nhớ tạm của bạn vẫn quan trọng. Xóa trường sau khi gỡ lỗi trên phần cứng dùng chung.
Các trường chuỗi thường chứa các đốm màu JSON hoặc base64 đã thoát. Sau khi định dạng đối tượng bên ngoài, sao chép chuỗi bên trong và định dạng lại. Một số lỗi mã hóa kép của API: trường thông báo chứa chuỗi JSON thay vì một đối tượng. Việc in đẹp từng lớp sẽ hiển thị thông báo xác thực thực sự mà giao diện người dùng của bạn sẽ hiển thị cho người dùng.
Khi nhật ký bao gồm văn bản hỗn hợp và JSON—thường gặp trong phân phối webhook—hãy sử dụng Trình kiểm tra Regex để tách biệt khối JSON trước khi định dạng. Một mẫu như \{[\s\S]*\} với việc neo cẩn thận có thể trích xuất đối tượng từ các tiêu đề xung quanh. Kiểm tra biểu thức chính quy dựa trên nhật ký mẫu đã lưu, sau đó áp dụng nó một cách nhất quán trên các mục nhập tương tự. Kết hợp trích xuất biểu thức chính quy với trình định dạng để bạn không xóa từng dòng tiền tố dấu thời gian theo cách thủ công.
Đối với công việc hồi quy, hãy thu nhỏ JSON được định dạng trở lại một dòng khi bạn cần tái tạo các chuỗi byte chính xác trong Curl hoặc Postman. Trình định dạng JSON hỗ trợ chế độ thu nhỏ cho chuyến đi khứ hồi đó. Lưu trữ cả hai cách trình bày trong phiếu của bạn: thụt lề cho người đọc, được rút gọn cho các bước sao chép-dán.
Xây dựng danh sách kiểm tra cá nhân cho các sự cố API. Bước một: định dạng và sửa cú pháp. Bước hai: ánh xạ các trường theo loại OpenAPI hoặc TypeScript của bạn. Bước ba: giải mã JWT nếu có liên quan đến xác thực. Bước bốn: trích xuất các tải trọng được nhúng bằng biểu thức chính quy từ nhật ký khi cần thiết. Bước năm: ghi lại tập hợp con bị lỗi nhỏ nhất—xóa các nhánh không liên quan cho đến khi chỉ còn lại khóa có vấn đề.
Các nhóm được hưởng lợi từ việc đồng ý về các quy ước thụt lề và sắp xếp chính ngay cả khi các đối tượng JSON không có thứ tự về mặt kỹ thuật. Định dạng nhất quán trong các yêu cầu kéo giúp giảm nhiễu khác nhau. Khi xem xét tải trọng của người khác, hãy yêu cầu họ dán JSON được định dạng thay vì ảnh chụp màn hình; văn bản có thể được tìm kiếm, hình ảnh không thể.
Mảng lớn đáng được quan tâm đặc biệt. Suy sụp tinh thần ở chỉ số 0 là điều dễ dàng; lỗi ở chỉ số bốn trăm thì không. Sau khi định dạng, hãy tìm kiếm ID hoặc email cụ thể từ báo cáo lỗi của bạn. Nếu trình định dạng gặp khó khăn với dữ liệu đầu vào được dán cực lớn, hãy chia mảng trong trình chỉnh sửa của bạn hoặc yêu cầu chủ sở hữu API cung cấp điểm cuối được phân trang.
Các trường nhạy cảm về bảo mật—mật khẩu, mã thông báo làm mới, khóa riêng—đôi khi xuất hiện trong các kết xuất gỡ lỗi ngẫu nhiên. Chỉnh sửa lại trước khi chia sẻ đầu ra được định dạng trong phiếu yêu cầu, ngay cả trong nội bộ. Trình định dạng không xóa bí mật cho bạn.
Với Trình định dạng JSON cho cấu trúc, Bộ giải mã JWT để xác nhận quyền sở hữu mã thông báo và Trình kiểm tra Regex để kéo JSON ra khỏi các nhật ký lộn xộn, bạn biến các phiên sao chép-dán điên cuồng thành một quy trình ngắn, có thể lặp lại. Lần sản xuất tiếp theo trả về 500 với nội dung mờ đục, bạn sẽ mất vài phút để xác định trường vi phạm thay vì hàng giờ để chống lại khoảng trắng.