动物与宠物

AWS AppSync

AWS AppSync 提供了使用 GraphQL 从应用程序创建数据源并与之交互的 API 操作。它简化了数据管理,支持实时更新和离线访问。

查看官方文档 ↗

接入教程

1. 在 AWS 控制台中创建 AppSync API
2. 定义 GraphQL 架构和数据源
3. 配置授权和订阅设置
4. 生成 API 密钥或使用 AWS 身份验证
5. 在应用中集成 SDK 并调用 API
6. 测试查询、变更和订阅功能

使用Python查询GraphQL数据

python
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
<?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订阅实时更新

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库提供了内置的错误处理机制。

相似接口推荐

AWS IoT Jobs数据平面

AWS IoT Jobs是一项服务,允许您定义一组作业——这些远程操作将发送到一个或多个连接到AWS IoT的设备上执行。例如,您可以定义作业指示一组设备下载并安装应用程序或固件更新、重启或轮换证书。

待确认
AWS IoT数据平面

AWS IoT数据平面提供物联网设备与AWS云之间的安全双向通信。它实现了消息代理功能,支持应用程序和设备发布消息。该服务适用于传感器、执行器及智能家电等联网设备。

待确认
AWS IoT

AWS IoT 提供物联网设备(如传感器、执行器、嵌入式设备或智能家电)与亚马逊云之间的安全双向通信服务。您可发现自定义的 IoT-Data 端点进行通信,并配置数据转发规则。

待确认
AWS Health API与通知服务

AWS Health API提供对个人健康仪表板中健康信息的编程访问。通过API操作可获取可能影响AWS服务的事件信息,帮助用户监控服务健康状况并及时响应潜在问题。

待确认