✅ 1. GraphQL 스키마와 타입 시스템
🧱 1.1 기본 타입 (type)
type Ability {
id: Long!
name: String!
description: String
createdTime: DateTime!
}
type은 서버가 응답으로 반환하는 데이터 구조
!는 필수 필드 (nullable 아님)
✏️ 1.2 입력 타입 (input)
input PageInput {
page: Int!
size: Int!
}
input은 요청(request)에 사용되는 타입
- GraphQL에서는
type을 입력용으로 쓸 수 없음 → 반드시 input으로 따로 정의
✅ 2. 쿼리와 뮤테이션
📥 2.1 쿼리 정의
query GetAbilityPageInWorkspace(
$pageInput: PageInput!
$workspaceId: Long!
$filterInput: AbilityPageFilterInput!
) {
abilityPageInWorkspace(
pageInput: $pageInput
workspaceId: $workspaceId
filterInput: $filterInput
) {
data {
id
name
}
page {
...PageFragment
}
}
}
🔁 2.2 뮤테이션 정의
mutation {
createUser(input: { name: "영서", email: "[email protected]" }) {
id
name
}
}
- 위는 실제 프론트에서 사용하는 요청
- 서버에서는 이렇게 정의됨: