JSON을 GraphQL로

로컬 처리
app.graphql.view

다음으로도 #data={"name":"Ada"} 또는 #url=... 데이터를 넣을 수 있으며, 읽은 뒤 주소 표시줄에서 지워집니다.

JSON 예시에서 GraphQL 타입을 추론합니다. GraphQL 응답을 디버깅하거나 mock 서비스의 초안을 잡을 때 처음부터 type을 쓰는 것보다 빠릅니다. 객체는 이름 있는 type으로 나뉘고, 배열은 목록에 대응합니다.

스칼라 추론

문자열, 숫자, 불리언은 GraphQL 스칼라에 대응합니다. 중첩 객체는 독립 type으로 나눠 전부 JSON으로 펼치지 않습니다.

null과 혼합 타입은 생성 결과에 유니온 타입이 맞는지 확인해야 합니다.

중첩 type

객체는 이름 있는 타입으로 나뉘고, 배열은 목록에 대응합니다. 깊은 구조는 여러 type 블록이 생성되어 schema 파일 초안으로 바로 붙일 수 있습니다.

필드가 null 허용인지( ! )는 업무에 맞춰 채우세요.

출발점으로

생성 후 ! 필수, 열거, 사용자 정의 스칼라를 보태세요. 이 페이지에는 query / mutation 루트 연산이 없습니다.

REST 팀이 JSON 계약만 필요하면 Schema 페이지가 더 맞습니다.

예시

예시 JSON
{
  "user": {
    "id": "u_1",
    "name": "Ada"
  }
}
나올 수 있는 타입 초안
type User {
  id: String
  name: String
}

type Root {
  user: User
}
완전한 GraphQL schema인가요?

데이터 모양에서 끌어낸 type일 뿐 query / mutation은 없습니다.

JSON Schema와 어떻게 고르나요?

REST 문서에는 Schema가 흔하고, GraphQL 서비스에는 이 페이지가 더 수월합니다.

필드 이름이 유효한가요?

쓸 수 있는 식별자를 되도록 만듭니다. 이상한 키 이름은 GraphQL이 허용하는 필드 이름으로 손으로 바꾸세요.

예시를 업로드하나요?

아니요. 추론은 브라우저에서 끝납니다.

권장 워크플로

  1. GraphQL playground나 로그에서 전형적인 응답을 복사하세요.
  2. type을 생성하고 중첩이 나뉘었는지, 목록이 맞는지 확인하세요.
  3. 필수, 열거, 사용자 정의 스칼라를 보탠 뒤 서버 schema에 넣으세요.
  4. REST 문서가 필요하면 JSON Schema 페이지를 쓰세요.

한 응답으로는 전체 그래프를 끌어낼 수 없습니다. mutation 입력, 페이지네이션 약속은 여전히 손으로 써야 합니다.