파이썬에서는 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
라이브러리를 사용하여 새로운 사용자를 추가하는 뮤테이션을 실행합니다.
결론
requests
라이브러리는 HTTP 요청을 쉽게 처리할 수 있으며, GraphQL 요청도 단순하게 보낼 수 있습니다.gql
라이브러리는 GraphQL 쿼리와 뮤테이션을 조금 더 직관적이고 간결하게 작성할 수 있습니다.