작성일 댓글 남기기

GraphQL 서버에 파이썬으로 접근하기

파이썬에서는 requests 라이브러리를 사용하여 GraphQL 서버에 HTTP 요청을 보내고, 데이터를 가져올 수 있습니다. 또한 **gql**이라는 라이브러리를 사용하면 좀 더 직관적인 방식으로 GraphQL 쿼리와 뮤테이션을 작성할 수 있습니다. 두 가지 방식 모두 예제로 보여드릴게요.

1. requests 라이브러리를 사용한 예제

먼저 requests 라이브러리를 이용한 기본적인 GraphQL 클라이언트 예제입니다.

설치:

pip install requests

GraphQL 쿼리 예제:

import requests

# GraphQL 엔드포인트 설정
url = 'http://localhost:4000/graphql'

# GraphQL 쿼리 작성
query = """
{
user(id: 1) {
name
email
}
}
"""

# 요청 보내기
response = requests.post(url, json={'query': query})

# 응답 결과 출력
print(response.json())

이 코드는 파이썬의 requests 라이브러리를 사용하여 GraphQL 서버에 쿼리를 보내는 예제입니다. 이때 쿼리를 JSON 형식으로 서버에 전송하고, 서버의 응답을 JSON으로 출력합니다.

결과:

{
"data": {
"user": {
"name": "John",
"email": "[email protected]"
}
}
}

GraphQL 뮤테이션 예제:

이번에는 사용자를 추가하는 뮤테이션 예제를 살펴보겠습니다.

import requests

# GraphQL 엔드포인트 설정
url = 'http://localhost:4000/graphql'

# GraphQL 뮤테이션 작성
mutation = """
mutation {
addUser(name: "Alice", email: "[email protected]") {
id
name
email
}
}
"""

# 요청 보내기
response = requests.post(url, json={'query': mutation})

# 응답 결과 출력
print(response.json())

이 코드 역시 requests 라이브러리를 사용하여, 새로운 사용자를 추가하는 뮤테이션을 서버에 보내고 결과를 출력합니다.

2. gql 라이브러리를 사용한 예제

**gql**은 GraphQL 쿼리 및 뮤테이션을 좀 더 Pythonic하게 작성할 수 있는 라이브러리입니다.

설치:

pip install gql requests

GraphQL 쿼리 예제:

from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport

# GraphQL 엔드포인트 설정
transport = RequestsHTTPTransport(
url='http://localhost:4000/graphql',
use_json=True
)

client = Client(transport=transport, fetch_schema_from_transport=True)

# GraphQL 쿼리 작성
query = gql("""
{
user(id: 1) {
name
email
}
}
""")

# 쿼리 실행
response = client.execute(query)

# 응답 결과 출력
print(response)

gql 라이브러리를 사용하면 GraphQL 쿼리를 쉽게 실행할 수 있으며, 쿼리 문법도 보다 직관적입니다.

결과:

{
"user": {
"name": "John",
"email": "[email protected]"
}
}

GraphQL 뮤테이션 예제:

from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport

# GraphQL 엔드포인트 설정
transport = RequestsHTTPTransport(
url='http://localhost:4000/graphql',
use_json=True
)

client = Client(transport=transport, fetch_schema_from_transport=True)

# GraphQL 뮤테이션 작성
mutation = gql("""
mutation {
addUser(name: "Alice", email: "[email protected]") {
id
name
email
}
}
""")

# 뮤테이션 실행
response = client.execute(mutation)

# 응답 결과 출력
print(response)

이 예제에서는 gql 라이브러리를 사용하여 새로운 사용자를 추가하는 뮤테이션을 실행합니다.

결론

  1. requests 라이브러리는 HTTP 요청을 쉽게 처리할 수 있으며, GraphQL 요청도 단순하게 보낼 수 있습니다.
  2. gql 라이브러리는 GraphQL 쿼리와 뮤테이션을 조금 더 직관적이고 간결하게 작성할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다