接入教程
1. 在 AWS 控制台中创建 AppSync API
2. 定义 GraphQL 架构和数据源
3. 配置授权和订阅设置
4. 生成 API 密钥或使用 AWS 身份验证
5. 在应用中集成 SDK 并调用 API
6. 测试查询、变更和订阅功能
使用Python查询GraphQL数据
import requests
import json
# AppSync GraphQL端点
url = "https://api.example.com/graphql"
# 设置请求头
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
# GraphQL查询
query = """
query {
listItems {
items {
id
name
description
}
}
}
"""
payload = {"query": query}
response = requests.post(url, headers=headers, json=payload)
data = response.json()
print(json.dumps(data, indent=2))
使用PHP执行GraphQL变更
<?php
$url = "https://api.example.com/graphql";
$apiKey = "YOUR_API_KEY";
$headers = [
"Content-Type: application/json",
"x-api-key: $apiKey"
];
$mutation = "
mutation CreateItem($input: CreateItemInput!) {
createItem(input: $input) {
id
name
createdAt
}
}
";
$variables = [
"input" => [
"name" => "New Item",
"description" => "Item created via API"
]
];
$payload = json_encode([
"query" => $mutation,
"variables" => $variables
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
?>
使用JavaScript订阅实时更新
import { API } from 'aws-amplify';
import { createAppSyncAPI } from '@aws-amplify/api-graphql';
// 配置AppSync
const config = {
url: 'https://api.example.com/graphql',
region: 'us-east-1',
auth: {
type: 'API_KEY',
apiKey: 'YOUR_API_KEY'
}
};
// 初始化API
const appsyncAPI = createAppSyncAPI(config);
// GraphQL订阅查询
const subscriptionQuery = `
subscription OnItemCreated {
onCreateItem {
id
name
createdAt
}
}
`;
// 建立订阅连接
const subscription = appsyncAPI.graphql({
query: subscriptionQuery
}).subscribe({
next: (data) => {
console.log('收到实时更新:', data);
},
error: (error) => {
console.error('订阅错误:', error);
}
});
// 稍后取消订阅
// subscription.unsubscribe();
常见问题
如何获取AWS AppSync的API密钥?
API密钥可在AWS管理控制台的AppSync服务中创建。进入您的GraphQL API设置,在"设置"选项卡下的"API密钥"部分可以创建和管理密钥。注意API密钥有有效期,通常为7天到1年。
AppSync支持哪些身份验证方式?
AWS AppSync支持多种身份验证方式,包括API密钥、Amazon Cognito用户池、AWS Identity and Access Management(IAM)以及OpenID Connect(OIDC)提供商。您可以根据应用程序的安全需求选择合适的认证方式。
如何处理AppSync的GraphQL查询错误?
AppSync返回的错误包含在GraphQL响应中的"errors"字段。建议在客户端代码中检查此字段,并根据错误类型(如验证错误、授权错误或数据源错误)进行适当处理。AWS Amplify库提供了内置的错误处理机制。
Aitishiku.com