GraphQL Variables 검사기
브라우저 처리GraphQL 쿼리의 변수 선언($id: ID!)과 variables JSON을 비교해 빠진 필수 변수, null이 들어간 non-null 값, Int·Float·String·Boolean·ID 형식 오류, 선언 없이 쓴 변수와 쓰이지 않는 변수를 찾아 줍니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
GraphQL 서버는 variables가 선언과 맞지 않으면 'Variable "$id" of required type "ID!" was not provided' 같은 오류로 요청 전체를 거절합니다. 이 도구는 서버에 보내기 전에 쿼리의 변수 선언과 variables JSON을 맞춰 보고 어긋난 곳을 알려 줍니다.
오류 2 · 경고 0 · 참고 0 선언 2개 · 전달 1개 [오류] 필수 변수 $id(ID!)가 없습니다. [오류] $limit: Int 형식이어야 하는데 "20" 값입니다.
GraphQL Variables 검사기 사용 가이드
GraphQL 서버는 variables가 선언과 맞지 않으면 'Variable "$id" of required type "ID!" was not provided' 같은 오류로 요청 전체를 거절합니다. 이 도구는 서버에 보내기 전에 쿼리의 변수 선언과 variables JSON을 맞춰 보고 어긋난 곳을 알려 줍니다.
query·mutation·subscription의 괄호 안 선언에서 이름, 형식, 기본값을 읽습니다. 끝에 !가 붙은 필수 변수가 기본값 없이 빠졌는지, [String!]! 같은 목록 안에 null이 섞였는지, Int에 2.5나 "20" 같은 값이 들어갔는지 확인합니다. Int는 32비트 범위까지 검사합니다.
쿼리 본문에서 $cursor처럼 쓰는데 선언하지 않은 변수는 오류로, variables에 있지만 선언에 없는 이름은 경고로 표시합니다. input 객체나 enum 같은 사용자 정의 형식은 스키마 없이 내부를 알 수 없어 '참고'로만 알려 줍니다.
사용 방법
- 'GraphQL 쿼리' 칸에 query Tool($id: ID!) { … } 형태의 쿼리를 붙여 넣습니다.
- 'variables JSON' 칸에 함께 보낼 변수 객체를 넣습니다.
- '실행'을 누르면 선언·전달 개수와 함께 문제 목록이 나옵니다.
예시: 필수 변수 누락과 형식 오류
query Tool($id: ID!, $limit: Int = 10) { tool(id: $id) { id name } }
---
{"limit":"20"}오류 2 · 경고 0 · 참고 0 선언 2개 · 전달 1개 [오류] 필수 변수 $id(ID!)가 없습니다. [오류] $limit: Int 형식이어야 하는데 "20" 값입니다.
--- 위는 쿼리 칸, 아래는 variables 칸 내용입니다. "20"처럼 따옴표가 있으면 문자열입니다.
이럴 때 쓰면 좋아요
- 프런트엔드에서 GraphQL 요청이 변수 오류로 실패할 때 원인을 찾을 때
- GraphiQL·Postman에서 보낼 variables JSON을 미리 점검할 때
- 쿼리를 고친 뒤 더 이상 쓰지 않는 변수를 정리할 때
- API 문서의 예시 쿼리와 변수가 서로 맞는지 확인할 때
문제가 생겼을 때
variables 칸에는 { "id": "1" }처럼 중괄호로 감싼 객체를 넣어야 합니다. 배열이나 값 하나만 넣으면 안 됩니다.
"20"처럼 따옴표로 감싼 숫자는 문자열입니다. Int·Float 변수에는 따옴표 없이 20으로 넣으세요.
활용 팁
- 기본값이 있는 변수($limit: Int = 10)는 !가 없으면 빠져도 괜찮습니다. 값을 넣으면 기본값 대신 그 값이 쓰입니다.
- ID 형식은 문자열과 정수를 모두 받으므로 "42"와 42 둘 다 통과합니다.
자주 묻는 질문
이 도구는 쿼리 선언과 variables만 비교합니다. 필드 이름이나 input 객체 구조까지 확인하려면 서버의 스키마 검사(introspection)를 이용하세요.
변수 선언 괄호가 있는 첫 번째 작업을 기준으로 검사합니다. 다른 작업은 따로 붙여 넣어 확인하세요.
쿼리 본문 전체에서 $이름 사용을 찾으므로 fragment 안에서 쓴 변수도 선언 여부를 확인합니다.