더 빠른 디버깅을 위해 JSON 형식을 지정하는 방법
축소된 API 응답은 눈에 띄게 오류를 숨깁니다. 시스템에 페이로드를 유지하는 브라우저 도구를 사용하여 인쇄하기, 구조 검증, JWT 디코딩, 정규식 테스트 등 반복 가능한 워크플로를 알아보세요.
API가 축소된 JSON 벽을 반환하면 실제 버그를 찾기 전에 디버깅 속도가 느려집니다. 키가 함께 흐려지고, 누락된 쉼표가 긴 문자열에 숨겨지며, 중첩된 배열을 검색할 수 없게 됩니다. 예쁜 인쇄는 미용이 아닙니다. 불투명한 전송 형식을 눈으로 몇 초 만에 분석할 수 있는 것으로 바꾸는 방법입니다.
브라우저 네트워크 탭, 터미널 또는 로그 파일에서 원시 응답을 복사합니다. Power Tools의 JSON 포맷터에 붙여넣으세요. 들여쓰기 수준을 선택합니다. 압축 로그의 경우 공백 2개, 코드 검토에서 코드 조각을 공유하는 경우 공백 4개입니다. 포맷터는 렌더링할 때 구문의 유효성을 검사합니다. 뒤에 오는 쉼표나 따옴표가 없는 키로 인해 문서가 손상되면 어떤 줄이 실패했는지 추측하는 대신 즉시 오류 위치를 볼 수 있습니다.
유효성 검사 오류는 몇 가지 예측 가능한 범주에 속합니다. 하나의 누락된 인용문이 수십 개의 오해의 소지가 있는 메시지로 이어지는 경우가 많습니다. 처음 보고된 문제를 수정하고 다시 포맷하세요. 문자열로 저장된 숫자(200 대신 "200")는 유효한 JSON이지만 애플리케이션에서 엄격한 비교가 중단될 수 있습니다. 들여쓰기된 출력을 읽는 동안 해당 항목을 강조 표시하세요. PATCH 엔드포인트에서는 Null 키와 부재 키가 중요합니다. 형식이 지정된 JSON을 사용하면 필드가 누락되지 않고 명시적으로 null인 경우를 명확하게 알 수 있습니다.
페이로드를 읽을 수 있게 되면 위에서 아래로 읽는 대신 전략적으로 디버그하세요. 봉투 식별: HTTP 래퍼는 종종 데이터, 결과 또는 항목 아래에 데이터를 배치합니다. 예상한 모양(배열과 객체)을 도착한 모양과 비교하세요. 페이지 매김이 포함된 경우 개별 레코드를 살펴보기 전에 페이지, 합계 및 커서 필드를 확인하세요.
인증 버그에는 JWT 액세스 토큰이 포함되는 경우가 많습니다. API가 401 또는 403을 반환하면 디코더에서 원시 JWT를 예상하는 경우 "Bearer" 접두사 없이 전달자 토큰을 JWT 디코더 도구에 붙여넣습니다. exp 청구를 먼저 검사하십시오. 만료된 토큰은 시계가 경계를 넘었기 때문에 "무작위"로 나타나는 갑작스러운 오류를 설명합니다. 귀하의 서비스가 발급자 또는 대상자의 유효성을 검사하는지 iss 및 aud를 확인하세요. 페이로드 섹션에는 서비스 간에 유형이 다를 경우 백엔드가 잘못 읽을 수 있는 역할, 테넌트 ID 및 사용자 지정 클레임이 표시됩니다.
소유권이 표시되는 공개 붙여넣기 상자나 채팅 스크린샷에 프로덕션 토큰을 붙여넣지 마세요. 자신의 컴퓨터에서 브라우저 기반 디코딩을 하면 타사 서버로부터 비밀이 보호되지만 화면과 클립보드는 여전히 중요합니다. 공유 하드웨어에서 디버깅한 후 필드를 지웁니다.
문자열 필드에는 이스케이프된 JSON 또는 base64 blob이 포함되는 경우가 많습니다. 외부 개체의 서식을 지정한 후 내부 문자열을 복사하고 다시 서식을 지정합니다. 일부 API는 오류를 이중으로 인코딩합니다. 메시지 필드에는 객체 대신 JSON 문자열이 포함됩니다. 각 레이어를 예쁘게 인쇄하면 UI가 사용자에게 표시해야 하는 실제 유효성 검사 메시지가 노출됩니다.
로그에 혼합된 텍스트와 JSON(웹훅 전달에서 흔히 발생)이 포함된 경우 서식을 지정하기 전에 Regex Tester를 사용하여 JSON 블록을 격리하세요. 조심스럽게 고정하는 \{[\s\S]*\}와 같은 패턴은 주변 헤더에서 개체를 추출할 수 있습니다. 저장된 샘플 로그에 대해 정규식을 테스트한 다음 유사한 항목에 일관되게 적용합니다. 정규식 추출을 포맷터와 결합하면 타임스탬프 접두사를 한 줄씩 수동으로 삭제하지 않아도 됩니다.
회귀 작업의 경우, 컬이나 Postman에서 정확한 바이트 시퀀스를 재현해야 할 때 형식화된 JSON을 다시 한 줄로 축소하세요. JSON 포맷터는 해당 왕복에 대한 축소 모드를 지원합니다. 티켓에 두 표현을 모두 저장합니다. 사람이 읽을 수 있도록 들여쓰기하고 복사하여 붙여넣기 재생 단계를 위해 축소합니다.
API 사고에 대한 개인 체크리스트를 작성하세요. 1단계: 구문 형식을 지정하고 수정합니다. 2단계: OpenAPI 또는 TypeScript 유형에 대해 필드를 매핑합니다. 3단계: 인증이 관련된 경우 JWT를 디코딩합니다. 4단계: 필요한 경우 로그에서 포함된 페이로드를 정규식으로 추출합니다. 5단계: 가장 작은 실패 하위 집합을 문서화합니다. 문제가 있는 키만 남을 때까지 관련 없는 분기를 제거합니다.
JSON 개체가 기술적으로 순서가 없더라도 팀은 들여쓰기 및 주요 순서 규칙에 동의함으로써 이점을 얻을 수 있습니다. 풀 요청의 일관된 형식은 차이 노이즈를 줄여줍니다. 다른 사람의 페이로드를 검토할 때 스크린샷 대신 형식화된 JSON을 붙여넣도록 요청하세요. 텍스트는 검색할 수 있지만 이미지는 검색할 수 없습니다.
대규모 배열에는 특별한 주의가 필요합니다. 인덱스 0에서 정신적으로 무너지는 것은 쉽습니다. 인덱스 400에 있는 버그는 그렇지 않습니다. 포맷 후 버그 리포트에서 특정 ID나 이메일을 검색하세요. 포맷터가 매우 큰 붙여넣기 입력으로 인해 어려움을 겪는 경우 편집기에서 배열을 분할하거나 API 소유자에게 페이지가 매겨진 엔드포인트를 요청하세요.
보안에 민감한 필드(비밀번호, 새로 고침 토큰, 개인 키 - 때때로 실수로 디버그 덤프에 나타납니다. 내부적으로도 티켓에서 서식이 지정된 출력을 공유하기 전에 수정하세요. 포맷터는 비밀을 제거하지 않습니다.
구조용 JSON 포맷터, 토큰 청구용 JWT 디코더, 지저분한 로그에서 JSON을 꺼내는 Regex Tester를 사용하면 정신없는 복사-붙여넣기 세션을 짧고 반복 가능한 파이프라인으로 전환할 수 있습니다. 다음번 프로덕션에서 불투명한 본체로 500을 반환하면 공백과 싸우는 데 몇 시간이 걸리지 않고 문제가 되는 필드를 찾는 데 몇 분만 소비하게 됩니다.