GraphQL에서 JSON 샘플
GraphQL 스키마를 붙여넣으면 Query 타입에 부합하는 JSON 문서를 얻을 수 있습니다 — 모든 필드 채움, 리스트 채움, enum 선택
입력
출력
GraphQL에서 JSON 샘플 도구란?
테스트 스위트에서 GraphQL API를 목하려면 보통 타입마다 가짜 데이터를 손으로 써야 합니다 — 지루하고 깨지기 쉽고, 스프린트 한두 번이면 스키마가 픽스처와 어긋나기 시작하죠. 이 페이지는 당신의 GraphQL 스키마 정의 언어를 읽고 그에 맞는 JSON 문서를 만들어냅니다. 왼쪽에 SDL을 붙여넣으면 오른쪽 패널이 값이 채워진 JSON 오브젝트를 돌려줍니다: Query 타입의 모든 필드가 채워지고, 리스트는 두 개 요소로 채워지고, enum은 첫 번째 값으로 설정되며, DateTime이나 URL 같은 커스텀 스칼라는 합리적인 기본값으로 매핑됩니다.
페이지에 파서 의존성이 로드되지 않습니다 — SDL 워커는 직접 작성한 약 600줄짜리이며, 실제 스키마에 등장하는 모든 구문을 커버합니다: type, interface, union, enum, input, scalar, 리스트 및 non-null 수정자, 자기 참조 타입까지. 출력은 RFC 8259를 따르는 일반 JSON, 두 칸 들여쓰기, fetch 목이나 Postman 예시 응답에 바로 떨어뜨릴 준비가 된 상태입니다. email, name, phone, currency, status 같은 이름의 필드는 어울리는 샘플 값을 받고, 나머지는 일반적인 "sample text"로 떨어집니다.
모든 일이 당신의 브라우저 안에서 일어납니다. 스키마가 페이지를 떠나지 않고, 네트워크 호출도 없고, 변환은 즉시입니다.
GraphQL에서 JSON 샘플 도구 사용법
빠른 세 단계. 아래 설명되는 버튼은 이 페이지의 실제 버튼들입니다.
붙여넣기, 업로드, 또는 샘플 로드
왼쪽 입력 패널에 GraphQL 스키마를 붙여넣으세요 — 입력을 멈추고 약 1/3초 후에 자동으로 변환되므로 변환 버튼이 없습니다. .graphql이나 .gql 파일을 쓰려면 업로드를 클릭하거나, 현실적인 이커머스 Order 스키마를 로드하려면 샘플을 누르세요. 일반적인 입력은 이런 모양입니다:
type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }서버 스타일 스키마(type Query { ... } 포함)와 독립 타입 파일 둘 다 동작합니다. 워커는 Query가 있으면 그걸 루트로 잡고, 없으면 첫 번째 오브젝트 타입을 고릅니다. 받아들이는 형태는 graphql-js 같은 도구가 시작 시 파싱하는 형태와 일치합니다.
JSON 출력 읽기
오른쪽 출력 패널이 JSON 샘플을 두 칸 들여쓰기로 렌더링합니다. 오브젝트 타입은 오브젝트가 됩니다. 리스트는 두 요소 배열이 됩니다. Enum은 첫 번째 값을 문자열로 갖습니다. 커스텀 스칼라는 합리적인 기본값을 받습니다 — DateTime은 ISO-8601 타임스탬프, URL은 "https://example.com/...", JSON은 {}가 됩니다. 자기 참조 타입(type Person { friends: [Person!]! })은 깊이 4에서 잘리고 null로 끝나므로 페이지가 멈출 일이 없습니다.
복사 또는 다운로드
픽스처 파일, 목 서버, fetch 스텁용으로 JSON을 가져가려면 복사를 누르세요. sample.json으로 저장하려면 다운로드를 누르세요. 입력 패널의 지우기 버튼은 빈 상태로 되돌립니다. 변환은 전적으로 클라이언트 사이드에서 일어납니다 — 스키마는 페이지를 떠나지 않습니다.
실제로 이걸 쓰게 되는 순간
목 GraphQL 서버 픽스처
json-graphql-server나 Apollo Server 목으로 목 백엔드를 띄우고 있는데 스키마 형태대로 된 시작용 JSON 파일이 필요할 때. SDL을 붙여넣고 출력을 복사하면 80%는 끝난 셈입니다 — 이름과 ID만 손보고 픽스처를 배포하세요.
Postman / Insomnia 예시 응답
Postman이나 Insomnia에서 GraphQL 엔드포인트를 문서화한다는 건 모든 오퍼레이션마다 예시 응답 본문을 채운다는 뜻입니다. 타입에서 JSON 모양을 생성하고, 예시에 붙여넣고, 테스트 케이스에 맞게 값을 편집하세요. 중첩된 오브젝트를 처음부터 손으로 쓰는 것보다 훨씬 낫습니다.
프론트엔드 타입 초안
백엔드가 새 GraphQL 타입을 내놓으면 프론트엔드는 엔드포인트가 실제로 준비되기 전에 UI를 연결할 샘플 페이로드가 필요한 경우가 많습니다. 스키마를 JSON으로 변환해 픽스처에 떨어뜨리고, 픽스처에 대고 컴포넌트를 만드세요. API가 준비되면 라이브 데이터로 갈아끼우면 됩니다.
스키마 탐색
300줄짜리 SDL을 읽는 것도 괜찮지만, 실제 응답이 어떻게 생겼는지 보는 게 더 빠릅니다. JSON 샘플이 스키마를 구체화합니다 — 어떤 필드가 중첩되어 있는지, 어느 게 배열인지, enum이 어디에 있는지 즉시 알 수 있습니다. 서비스에 새로 합류한 엔지니어 온보딩에 유용합니다.
자주 묻는 질문
실제 서버에 쿼리를 실행하나요?
아니요. 페이지는 스키마 형태에 부합하는 샘플 문서를 생성할 뿐입니다. 네트워크 호출이 없습니다. 실제 GraphQL 엔드포인트를 호출해야 한다면 GraphiQL이나 임의의 GraphQL 클라이언트를 사용하세요.
자기 참조 타입이 몇 단계 만에 멈추는 이유는?
깊이 4에서 재귀가 잘립니다. type Person { friends: [Person!]! } 같은 스키마는 그러지 않으면 무한히 중첩된 오브젝트를 생성하게 됩니다. 한도를 넘으면 값이 null이 되어 JSON이 유한하고 깔끔하게 출력 가능한 상태로 유지됩니다.
어떤 루트 타입을 사용하나요?
먼저 type Query를 찾습니다. 없으면 스키마에 정의된 첫 번째 오브젝트 타입을 고릅니다(input 타입은 건너뜁니다). SDL 순서를 바꾸면 임의의 타입을 맨 위로 올릴 수 있습니다.
커스텀 스칼라가 처리되나요?
네. 흔한 것들(DateTime, Date, Time, URL, Email, JSON, BigInt)은 합리적인 기본값이 내장되어 있습니다. 그 외에는 일반적인 플레이스홀더 문자열로 떨어집니다. 스칼라를 특정 값에 매핑하고 싶다면 출력을 손으로 편집하세요 — 그냥 JSON일 뿐입니다.
JSON이 제 스키마에 대해 유효한가요?
형태로는 유효합니다: 모든 필수 필드가 채워지고, 타입은 선언된 스칼라/오브젝트/리스트와 일치하며, enum은 실제 enum 값을 사용합니다. 의미상으로 유효하지는 않습니다(이메일은 진짜 이메일이 아니고, 주문 ID는 진짜 ID가 아님). 픽스처 시작점으로 쓰고, 테스트 대체물로는 쓰지 마세요.
제 스키마가 서버로 전송되나요?
아니요. 변환은 전적으로 브라우저 안에서 실행됩니다. 아무것도 업로드되지 않고, 아무것도 로깅되지 않습니다. 사내 스키마나 미공개 스키마를 붙여넣어도 안전합니다.
다른 GraphQL과 JSON 도구
샘플 생성은 GraphQL 워크플로의 한 부분일 뿐입니다. 이 도구들이 나머지를 커버합니다: