1. 개요

이 짧은 사용방법(예제)에서는 Postman을 사용하여 GraphQL Endpoints을 테스트하는 방법을 보여줍니다.

2. 스키마 개요 및 방법

GraphQL 사용방법(예제) 에서 생성한 Endpoints을 사용합니다 . 다시 말해 스키마에는 게시물과 작성자를 설명하는 정의가 포함되어 있습니다.

type Post {
    id: ID!
    title: String!
    text: String!
    category: String
    author: Author!
}
 
type Author {
    id: ID!
    name: String!
    thumbnail: String
    posts: [Post]!
}

또한 게시물을 표시하고 새 게시물을 작성하는 방법도 있습니다.

type Query {
    recentPosts(count: Int, offset: Int): [Post]!
}
 
type Mutation {
    createPost(title: String!, text: String!, category: String) : Post!
}

변형을 사용하여 데이터를 저장하면 필수 필드에 느낌표가 표시 됩니다. 또한 Mutation 에서 반환된 유형은 Post 이지만  Query에서는 Post 개체 List을 가져옵니다 .

위의 스키마는 Postman API 섹션에서 로드할 수 있습니다. GraphQL  유형의  New API 를  추가하고 Generate Collection 을 누르기만 하면 됩니다 .

스키마를 로드하면 Postman의 GraphQL 자동 완성 지원을 사용하여 샘플 쿼리를 쉽게 작성할 수 있습니다 .

3. Postman의 GraphQL 요청

우선 Postman을 사용하면 본문을 GraphQL 형식으로 보낼 수 있습니다. 아래에서 GraphQL 옵션을 선택하기만 하면 됩니다.

그런 다음 QUERY 섹션 에 제목 , 카테고리 및 작성자 이름 을 가져오는 것과 같은 기본 GraphQL 쿼리를 작성할 수 있습니다 .

query {
    recentPosts(count: 1, offset: 0) {
        title
        category
        author {
            name
        }
    }
}

결과적으로 다음을 얻을 수 있습니다.

{
    "data": {
        "recentPosts": [
            {
                "title": "Post",
                "category": "test",
                "author": {
                    "name": "Author 0"
                }
            }
        ]
    }
}

원시 형식을 사용하여 요청 을 보낼 수도 있지만 헤더 섹션 에 Content-Type: application/graphql 을 추가해야 합니다. 그리고 이 경우 본체는 동일하게 보입니다.

예를 들어 제목, 텍스트, 카테고리 를 업데이트 하고 응답으로 ID제목 을 가져올 수 있습니다 .

mutation {
    createPost (
        title: "Post", 
        text: "test", 
        category: "test",
    ) {
        id
        title
    }
}

속기 구문을 사용하는 한 쿼리 및  변형 과 같은 작업 유형을 쿼리 본문에서 생략할 수 있습니다. 이 경우 작업의 이름과 변수를 사용할 수 없지만 보다 쉬운 로깅 및 디버깅을 위해 작업 이름을 사용하는 것이 좋습니다.

4. 변수 사용

변수 섹션에서 변수에 값을 할당할 JSON 형식의 스키마를 생성할 수 있습니다. 이렇게 하면 쿼리 문자열에 인수를 입력하지 않아도 됩니다.

따라서 QUERY 섹션의 최근 게시물  본문을 수정하여 변수에서 값을 동적으로 할당할 수 있습니다.

query recentPosts ($count: Int, $offset: Int) {
    recentPosts (count: $count, offset: $offset) {
        id
        title
        text
        category
    }
}

그리고 변수를 설정하려는 항목으로 GRAPHQL VARIABLES 섹션을 편집할 수 있습니다.

{
  "count": 1,
  "offset": 0
}

5. 요약

스키마를 가져오고 쿼리를 생성할 수 있는 Postman을 사용하여 GraphQL을 쉽게 테스트할 수 있습니다.

요청 모음은 GitHub 에서 찾을 수 있습니다 .

Junit footer banner