跳到主要内容

网络与服务

本节为 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')。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetNotifications 对象,其中包含通知列表和分页详情。

请求示例

getNotifications Example

javascript
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

json
{
  "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 — (可选)按特定来源筛选。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseMakeAllNotificationsAsRead 对象,其中指明了受影响的通知数量。

请求示例

makeAllNotificationsAsRead Example

javascript
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

json
{
  "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[] — 按严重级别数组筛选。

返回

返回一个 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 — 分页选项。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseReceivers 对象,其中包含接收者列表和分页详情。

getNotificationComponents

检索已发送通知的组件 DID 列表。

参数

  • input RequestNotificationComponentsInput (required) — 包含筛选条件的对象。
    • teamDid string (required) — 团队/blocklet 的 DID。
    • receiver string — 按通知接收者的 DID 筛选。

返回

返回一个 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,则仅向之前未能接收到通知的接收者重新发送。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseResendNotification 对象。

路由与域名

用于管理路由规则和域名配置的查询。

getRoutingSites

检索所有已配置的路由站点列表。

参数

  • input RequestGetRoutingSitesInput — 包含筛选条件的对象。
    • snapshotHash string — (可选)如果提供,则从特定的历史快照中检索路由站点。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingSites 对象,其中包含一个 RoutingSite 对象数组。

请求示例

getRoutingSites Example

javascript
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

json
{
  "code": "ok",
  "sites": [
    {
      "id": "...",
      "domain": "example.com",
      "domainAliases": [{"value": "www.example.com"}],
      "rules": [/* ... */]
    }
  ]
}

getRoutingSnapshots

检索路由配置的历史快照列表。

参数

  • input RequestGetRoutingSnapshotsInput — 包含筛选条件的对象。
    • limit number — 要返回的最大快照数量。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingSnapshots 对象,其中包含一个 RoutingSnapshot 对象数组。

getSnapshotSites

从指定的快照哈希中检索路由站点。

参数

  • input RequestGetSnapshotSitesInput (required) — 包含快照哈希的对象。
    • hash string (required) — 要检索的快照的哈希值。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetSnapshotSites 对象,其中包含该快照中的 RoutingSite 对象数组。

getRoutingProviders

检索可用路由提供商(例如 Nginx)及其当前状态的列表。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetRoutingProviders 对象,其中包含一个 RoutingProvider 对象数组。

isDidDomain

检查给定域名是否为基于 DID 的域名。

参数

  • input RequestIsDidDomainInput (required)
    • domain string (required) — 要检查的域名。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseIsDidDomain 对象,其中包含一个布尔值 value 来表示结果。

getDomainDNS

检查给定域名的 DNS 解析状态,验证其是否正确指向 Blocklet Server。

参数

  • input RequestDomainDNSInput (required)
    • teamDid string (required) — 与该域名关联的团队/blocklet 的 DID。
    • domain string (required) — 要检查的域名。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseDomainDNS 对象,其中详细说明了 DNS 状态。

证书

用于管理 SSL/TLS 证书的查询。

getCertificates

检索节点上安装的所有 SSL 证书。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetCertificates 对象,其中包含一个 Certificate 对象数组。

请求示例

getCertificates Example

javascript
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

json
{
  "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。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseFindCertificateByDomain 对象,如果找到,则包含该 Certificate

checkDomains

一次性检查多个域名的状态和有效性,通常在颁发证书前使用。

参数

  • input RequestCheckDomainsInput (required)
    • domains string[] (required) — 要检查的域名数组。
    • did string — (可选)blocklet 的 DID。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseCheckDomains 对象,其中指明了检查的状态。

Webhook

用于管理 Webhook 及其发送者的查询。

getWebHooks

检索所有已配置的 Webhook 列表。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseWebHooks 对象,其中包含一个 WebHook 对象数组。

请求示例

getWebHooks Example

javascript
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

json
{
  "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) — 测试消息内容。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseSendMsg 对象,其中指明了操作的结果。

getWebhookEndpoints

检索已配置的 Webhook 端点的分页列表。

参数

  • input RequestGetWebhookEndpointsInput (required)
    • teamDid string (required) — 团队/blocklet 的 DID。
    • paging PagingInput — 分页选项。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetWebhookEndpoints 对象。

getWebhookEndpoint

通过 ID 检索单个 Webhook 端点。

参数

  • input RequestGetWebhookEndpointInput (required)
    • teamDid string (required) — 团队/blocklet 的 DID。
    • id string (required) — Webhook 端点的 ID。

返回

返回一个 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。
    • paging PagingInput — 分页选项。

返回

返回一个 Promise,该 Promise 会解析为一个 ResponseGetWebhookAttempts 对象。

您现在已经了解了用于管理网络和服务的查询。要探索如何获取与备份、日志和分析相关的数据,请继续阅读 数据与操作 部分。