FinAI Chatbot - Retrieve endpoint untuk skema GraphQL #946
Unanswered
faiq-kamil
asked this question in
Q&A
Replies: 1 comment
-
|
Dear Pak @faiq-kamil , Pada REST API, kita cukup melakukan GET ke endpoint tertentu (misalnya Untuk API berbasis GraphQL, kita perlu mengubah pendekatannya menjadi POST request dan menyertakan query dalam payload JSON. import requests
def retrieve_from_graphql(endpoint_url: str, query: str, variables: dict = None) -> dict:
"""
A reusable helper function to perform GraphQL POST requests.
Parameters:
- endpoint_url: str → GraphQL endpoint (usually something like https://sectors.app/api/graphql)
- query: str → GraphQL query or mutation string
- variables: dict → optional variables for the query
"""
headers = {
"Authorization": SECTORS_API_KEY,
"Content-Type": "application/json"
}
payload = {
"query": query,
"variables": variables or {}
}
try:
response = requests.post(endpoint_url, json=payload, headers=headers)
response.raise_for_status()
data = response.json()
# Handle GraphQL-level errors
if "errors" in data:
return {
"error": "GraphQL error",
"details": data["errors"],
"query": query
}
return data.get("data", {})
except requests.exceptions.HTTPError as err:
return {
"error": f"HTTPError {err.response.status_code} - {err.response.reason}",
"detail": err.response.text,
"endpoint": endpoint_url
}
except Exception as e:
return {
"error": f"Unexpected error: {type(e).__name__} - {str(e)}",
"endpoint": endpoint_url
} |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Ketika pembelajaran, kita menggunakan fungsi retrieve endpoint utk sectors api. sectors API kan menggunakan skema RestAPI, bagaimana cara modifikasi fungsi retrieve endpoint apabila menggunakan api GraphQL?
fungsi retrieve yang dimaksud adalah sbg berikut:
def retrieve_from_endpoint(url: str) -> dict:
"""
A robust, reusable helper function to perform GET requests.
"""
Beta Was this translation helpful? Give feedback.
All reactions