피드로 돌아가기
Dev.toBackend
원문 읽기
디버그 로그 오인으로 인한 JSON 인코딩 이슈 오진 및 필드 매핑 오류 해결
CF7 Webhook Getting a 400 Bad Request? The Problem Is Probably Not JSON Encoding
AI 요약
Context
CF7 Webhook을 통한 외부 REST API 연동 중 400 Bad Request 발생. PHP 디버그 로그의 문자열 표현 방식(String Representation)을 실제 네트워크 전송 바이트로 오인하여 JSON Double-encoding 문제로 잘못 진단한 상황.
Technical Solution
- PHP
var_dump및 로그 출력 시 발생하는 Escape character를 실제 Payload 구조와 분리하여 분석 - API Response의 Validation Error 메시지를 기반으로 Request Body의 스키마 불일치 지점 식별
_notify_leadtype_id와 같은 내부 필드명 대신 API 명세서의leadtype_id로 필드 매핑 수정- 정적 값(Static Value)과 동적 폼 데이터(Dynamic Field)를 혼합 전송하는 Payload 구성 로직 검증
- cURL을 이용한 직접 호출 테스트로 Plugin 레이어와 API 엔드포인트 간의 책임 분리 및 검증
실천 포인트
1. API 400 에러 발생 시 Response Body의 Validation 메시지를 최우선으로 확인하여 누락된 필드 식별
2. 공식 API Reference의 필드명과 Case-sensitive 여부를 대조하여 정확한 Key 값 매핑
3. 언어별 로그 출력 방식에 따른 Escape character와 실제 전송되는 Binary 데이터의 차이 인지
4. 통합 테스트 전 cURL 또는 Postman을 통해 최소 단위의 Payload 전송 성공 여부 우선 검증
5. Static Value와 Dynamic Value의 혼합 전송 지원 여부를 Plugin/Library 수준에서 확인