本节为 Blocklet Server 上所有与网络和服务相关的 GraphQL 查询提供了详细的参考。这些方法允许您获取路由、域名、证书、Webhook 和通知的数据及配置。如需进行修改这些设置的操作,请参阅 网络与服务变更 部分。
通知
用于管理和检索通知的查询。
getNotifications
根据指定的筛选条件检索通知列表。
参数
- input
RequestGetNotificationsInput(required) — 包含筛选条件的对象。- receiver
string— 按通知接收者的 DID 筛选。 - sender
string— 按通知发送者的 DID 筛选。 - read
boolean— 按已读状态筛选。 - paging
PagingInput— 分页选项。 - teamDid
string— 团队/blocklet 的 DID。 - severity
string[]— 按严重级别筛选(例如 'info', 'error')。 - componentDid
string[]— 按组件 DID 筛选。 - entityId
string[]— 按实体 ID 筛选。 - source
string[]— 按来源筛选(例如 'system', 'component')。
- receiver
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetNotifications 对象,其中包含通知列表和分页详情。
请求示例
getNotifications Example
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchUnreadNotifications() {
try {
const response = await client.getNotifications({
input: {
read: false,
paging: { pageSize: 10, page: 1 },
},
});
console.log('未读通知:', response.list);
console.log('未读数量:', response.unreadCount);
} catch (error) {
console.error('获取通知时出错:', error);
}
}
fetchUnreadNotifications();响应示例
Response
{
"code": "ok",
"list": [
{
"id": "...",
"title": "有新更新可用",
"description": "您的 blocklet 有一个新版本可供安装。",
"read": false,
"createdAt": 1678886400
}
],
"paging": {
"total": 5,
"pageSize": 10,
"pageCount": 1,
"page": 1
},
"unreadCount": 5
}makeAllNotificationsAsRead
将所有符合给定条件的通知标记为已读。
参数
- input
RequestMakeAllNotificationsAsReadInput(required) — 包含筛选条件的对象,用于指定要标记为已读的通知。- receiver
string(required) — 通知接收者的 DID。 - teamDid
string— 团队/blocklet 的 DID。 - severity
string— (可选)按特定严重级别筛选。 - componentDid
string— (可选)按特定组件 DID 筛选。 - entityId
string— (可选)按特定实体 ID 筛选。 - source
string— (可选)按特定来源筛选。
- receiver
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseMakeAllNotificationsAsRead 对象,其中指明了受影响的通知数量。
请求示例
makeAllNotificationsAsRead Example
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function markAllAsRead() {
try {
const response = await client.makeAllNotificationsAsRead({
input: { receiver: 'z8iZ...aYp' },
});
console.log(`已将 ${response.data.numAffected} 条通知标记为已读。`);
} catch (error) {
console.error('标记通知为已读时出错:', error);
}
}
markAllAsRead();响应示例
Response
{
"code": "ok",
"data": {
"numAffected": 5,
"notificationIds": ["...", "..."]
}
}getNotificationSendLog
检索通知的发送日志,允许您跨不同渠道跟踪投递状态。
参数
- input
RequestNotificationSendLogInput(required) — 包含发送日志筛选条件的对象。- teamDid
string(required) — 团队/blocklet 的 DID。 - dateRange
string[]— 在特定日期范围内筛选日志(例如 ['2023-01-01', '2023-01-31'])。 - paging
PagingInput— 分页选项。 - source
string— 按通知来源筛选。 - componentDids
string[]— 按组件 DID 数组筛选。 - severities
string[]— 按严重级别数组筛选。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseNotificationSendLog 对象,其中包含通知日志列表和分页详情。
getReceivers
根据各种筛选条件(例如不同渠道的发送状态)检索通知接收者列表。
参数
- input
RequestReceiversInput(required) — 包含接收者筛选条件的对象。- teamDid
string(required) — 团队/blocklet 的 DID。 - notificationId
string— 筛选特定通知的接收者。 - userName
string— 按接收者姓名搜索。 - userDid
string— 按特定用户 DID 筛选。 - walletSendStatus
number[]— 按钱包发送状态码筛选。 - pushKitSendStatus
number[]— 按推送通知发送状态码筛选。 - emailSendStatus
number[]— 按邮件发送状态码筛选。 - dateRange
string[]— 在特定日期范围内筛选接收者。 - paging
PagingInput— 分页选项。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseReceivers 对象,其中包含接收者列表和分页详情。
getNotificationComponents
检索已发送通知的组件 DID 列表。
参数
- input
RequestNotificationComponentsInput(required) — 包含筛选条件的对象。- teamDid
string(required) — 团队/blocklet 的 DID。 - receiver
string— 按通知接收者的 DID 筛选。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseNotificationComponents 对象,其中包含一个组件 DID 数组。
resendNotification
触发向指定的接收者和渠道重新发送特定通知。
参数
- input
RequestResendNotificationInput(required) — 包含重发操作详情的对象。- teamDid
string(required) — 团队/blocklet 的 DID。 - notificationId
string(required) — 要重发的通知的 ID。 - receivers
string[]— 要将通知重发到的用户 DID 列表。 - channels
string[]— 用于重发的渠道列表(例如 'wallet', 'email')。 - webhookUrls
string[]— 要重发到的特定 Webhook URL 列表。 - resendFailedOnly
boolean— 如果为 true,则仅向之前未能接收到通知的接收者重新发送。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseResendNotification 对象。
路由与域名
用于管理路由规则和域名配置的查询。
getRoutingSites
检索所有已配置的路由站点列表。
参数
- input
RequestGetRoutingSitesInput— 包含筛选条件的对象。- snapshotHash
string— (可选)如果提供,则从特定的历史快照中检索路由站点。
- snapshotHash
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingSites 对象,其中包含一个 RoutingSite 对象数组。
请求示例
getRoutingSites Example
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchRoutingSites() {
try {
const response = await client.getRoutingSites();
console.log('路由站点:', response.sites);
} catch (error) {
console.error('获取路由站点时出错:', error);
}
}
fetchRoutingSites();响应示例
Response
{
"code": "ok",
"sites": [
{
"id": "...",
"domain": "example.com",
"domainAliases": [{"value": "www.example.com"}],
"rules": [/* ... */]
}
]
}getRoutingSnapshots
检索路由配置的历史快照列表。
参数
- input
RequestGetRoutingSnapshotsInput— 包含筛选条件的对象。- limit
number— 要返回的最大快照数量。
- limit
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingSnapshots 对象,其中包含一个 RoutingSnapshot 对象数组。
getSnapshotSites
从指定的快照哈希中检索路由站点。
参数
- input
RequestGetSnapshotSitesInput(required) — 包含快照哈希的对象。- hash
string(required) — 要检索的快照的哈希值。
- hash
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetSnapshotSites 对象,其中包含该快照中的 RoutingSite 对象数组。
getRoutingProviders
检索可用路由提供商(例如 Nginx)及其当前状态的列表。
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingProviders 对象,其中包含一个 RoutingProvider 对象数组。
isDidDomain
检查给定域名是否为基于 DID 的域名。
参数
- input
RequestIsDidDomainInput(required)- domain
string(required) — 要检查的域名。
- domain
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseIsDidDomain 对象,其中包含一个布尔值 value 来表示结果。
getDomainDNS
检查给定域名的 DNS 解析状态,验证其是否正确指向 Blocklet Server。
参数
- input
RequestDomainDNSInput(required)- teamDid
string(required) — 与该域名关联的团队/blocklet 的 DID。 - domain
string(required) — 要检查的域名。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseDomainDNS 对象,其中详细说明了 DNS 状态。
证书
用于管理 SSL/TLS 证书的查询。
getCertificates
检索节点上安装的所有 SSL 证书。
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetCertificates 对象,其中包含一个 Certificate 对象数组。
请求示例
getCertificates Example
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function listCertificates() {
try {
const response = await client.getCertificates();
console.log('已安装的证书:', response.certificates);
} catch (error) {
console.error('获取证书时出错:', error);
}
}
listCertificates();响应示例
Response
{
"code": "ok",
"certificates": [
{
"id": "...",
"name": "example.com-cert",
"domain": "example.com",
"source": "letsencrypt",
"status": "valid"
}
]
}findCertificateByDomain
通过其关联的域名查找特定证书。
参数
- input
RequestFindCertificateByDomainInput(required)- domain
string(required) — 与证书关联的域名。 - did
string— (可选)用于缩小搜索范围的 blocklet 的 DID。
- domain
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseFindCertificateByDomain 对象,如果找到,则包含该 Certificate。
checkDomains
一次性检查多个域名的状态和有效性,通常在颁发证书前使用。
参数
- input
RequestCheckDomainsInput(required)- domains
string[](required) — 要检查的域名数组。 - did
string— (可选)blocklet 的 DID。
- domains
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseCheckDomains 对象,其中指明了检查的状态。
Webhook
用于管理 Webhook 及其发送者的查询。
getWebHooks
检索所有已配置的 Webhook 列表。
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseWebHooks 对象,其中包含一个 WebHook 对象数组。
请求示例
getWebHooks Example
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function listWebhooks() {
try {
const response = await client.getWebHooks();
console.log('已配置的 Webhook:', response.webhooks);
} catch (error) {
console.error('获取 Webhook 时出错:', error);
}
}
listWebhooks();响应示例
Response
{
"code": "ok",
"webhooks": [
{
"id": "...",
"type": "slack",
"params": [{"name": "url", "value": "https://hooks.slack.com/..."}]
}
]
}getWebhookSenders
检索可用的 Webhook 发送者类型(例如 Slack、API)及其所需参数的列表。
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseSenderList 对象,其中包含一个 WebHookSender 对象数组。
sendTestMessage
向指定的 Webhook 发送测试消息以验证其配置。
参数
- input
RequestSendMsgInput(required)- webhookId
string(required) — 要测试的 Webhook 的 ID。 - message
string(required) — 测试消息内容。
- webhookId
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseSendMsg 对象,其中指明了操作的结果。
getWebhookEndpoints
检索已配置的 Webhook 端点的分页列表。
参数
- input
RequestGetWebhookEndpointsInput(required)- teamDid
string(required) — 团队/blocklet 的 DID。 - paging
PagingInput— 分页选项。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetWebhookEndpoints 对象。
getWebhookEndpoint
通过 ID 检索单个 Webhook 端点。
参数
- input
RequestGetWebhookEndpointInput(required)- teamDid
string(required) — 团队/blocklet 的 DID。 - id
string(required) — Webhook 端点的 ID。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetWebhookEndpoint 对象。
getWebhookAttempts
检索特定 Webhook 事件的投递尝试历史记录。
参数
- input
RequestGetWebhookAttemptsInput(required)- teamDid
string(required) — 团队/blocklet 的 DID。 - input
RequestAttemptIdInput(required) — 包含 eventId 和 webhookId 的对象。- eventId
string(required) — 事件的 ID。 - webhookId
string(required) — Webhook 的 ID。
- eventId
- paging
PagingInput— 分页选项。
- teamDid
返回
返回一个 Promise,该 Promise 会解析为一个 ResponseGetWebhookAttempts 对象。
您现在已经了解了用于管理网络和服务的查询。要探索如何获取与备份、日志和分析相关的数据,请继续阅读 数据与操作 部分。