跳到主要内容

发布与项目

本节为用于管理发布项目、发布版本和相关资源的 GraphQL 查询提供了详细的参考。这些查询允许您检索有关 blocklet 发布生命周期的信息。对于修改此数据的操作,例如创建或更新项目和发布版本,请参阅 发布与项目变更文档

getProjects

检索与特定 blocklet 关联的发布项目列表。

示例

获取项目列表

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchProjects() {
  try {
    const { projects, paging } = await client.getProjects({
      input: {
        did: 'z8ia262k3g55v12a874bf7ae1666c268882b6',
        paging: {
          page: 1,
          pageSize: 10,
        },
      },
    });
    console.log('项目:', projects);
    console.log('分页信息:', paging);
  } catch (error) {
    console.error('获取项目时出错:', error);
  }
}

fetchProjects();

参数

  • input RequestGetProjectsInput (required) — 查询的输入对象。
    • did string (required) — blocklet 的 DID。
    • paging PagingInput — 分页信息。
    • componentDid string — 按组件 DID 筛选项目。
    • tenantScope string — 按租户范围筛选项目。

返回类型

返回一个 ResponseGetProjects 对象,其中包含一个 Project 对象数组和分页详细信息。

响应示例

getProjects 的响应

json
{
  "code": "ok",
  "projects": [
    {
      "id": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
      "type": "pack",
      "blockletDid": "z8ia262k3g55v12a874bf7ae1666c268882b6",
      "blockletTitle": "我的超棒 Blocklet",
      "createdAt": "2023-10-27T10:00:00.000Z",
      "updatedAt": "2023-10-27T10:00:00.000Z",
      "lastReleaseId": "z3t8b..._release_id_...",
      "connectedStores": []
    }
  ],
  "paging": {
    "page": 1,
    "pageSize": 10,
    "total": 1,
    "pageCount": 1
  }
}

getProject

使用其 ID 检索单个发布项目的详细信息。

示例

获取单个项目

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchProject(projectId) {
  try {
    const { project } = await client.getProject({
      input: {
        did: 'z8ia262k3g55v12a874bf7ae1666c268882b6',
        projectId: projectId,
      },
    });
    console.log('项目详情:', project);
  } catch (error) {
    console.error('获取项目时出错:', error);
  }
}

fetchProject('z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3');

参数

  • input RequestProjectInput (required) — 查询的输入对象。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 要检索的项目的唯一标识符。
    • messageId string — 用于跟踪请求的消息标识符。

返回类型

返回一个 ResponseGetProject 对象,其中包含 Project 详细信息。

响应示例

getProject 的响应

json
{
  "code": "ok",
  "project": {
    "id": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
    "type": "pack",
    "blockletDid": "z8ia262k3g55v12a874bf7ae1666c268882b6",
    "blockletTitle": "我的超棒 Blocklet",
    "blockletDescription": "一个能做很棒事情的 blocklet。",
    "autoUpload": true,
    "connectedStores": []
  }
}

getReleases

获取给定发布项目的发布版本列表。

示例

获取项目的发布版本

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchReleases(projectId) {
  try {
    const { releases } = await client.getReleases({
      input: {
        did: 'z8ia262k3g55v12a874bf7ae1666c268882b6',
        projectId: projectId,
      },
    });
    console.log('发布版本:', releases);
  } catch (error) {
    console.error('获取发布版本时出错:', error);
  }
}

fetchReleases('z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3');

参数

  • input RequestGetReleasesInput (required) — 查询的输入对象。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 要获取其发布版本的项目的 ID。
    • paging PagingInput — 分页信息。

返回类型

返回一个 ResponseGetReleases 对象,其中包含一个 Release 对象数组和分页信息。

响应示例

getReleases 的响应

json
{
  "code": "ok",
  "releases": [
    {
      "id": "z3t8bCDE...",
      "projectId": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
      "blockletDid": "z8ia262k3g55v12a874bf7ae1666c268882b6",
      "blockletVersion": "1.2.0",
      "note": "包含新功能的初始版本。",
      "status": "published",
      "createdAt": "2023-10-27T12:00:00.000Z"
    }
  ],
  "paging": {
    "page": 1,
    "pageSize": 10,
    "total": 1,
    "pageCount": 1
  }
}

getRelease

使用其 ID 检索单个发布版本的详细信息。

示例

获取单个发布版本

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchRelease(projectId, releaseId) {
  try {
    const { release } = await client.getRelease({
      input: {
        did: 'z8ia262k3g55v12a874bf7ae1666c268882b6',
        projectId: projectId,
        releaseId: releaseId,
      },
    });
    console.log('发布版本详情:', release);
  } catch (error) {
    console.error('获取发布版本时出错:', error);
  }
}

fetchRelease('z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3', 'z3t8bCDE...');

参数

  • input RequestReleaseInput (required) — 查询的输入对象。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 父项目的 ID。
    • releaseId string (required) — 要检索的发布版本的唯一标识符。

返回类型

返回一个 ResponseGetRelease 对象,其中包含 Release 详细信息。

响应示例

getRelease 的响应

json
{
  "code": "ok",
  "release": {
    "id": "z3t8bCDE...",
    "projectId": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
    "blockletVersion": "1.2.0",
    "blockletTitle": "我的超棒 Blocklet",
    "note": "包含新功能的初始版本。",
    "status": "published"
  }
}

getSelectedResources

获取在发布版本中为特定组件选择的资源标识符列表。

示例

获取发布版本的选定资源

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchSelectedResources(projectId, releaseId, componentDid) {
  try {
    const { resources } = await client.getSelectedResources({
      input: {
        did: 'z8ia262k3g55v12a874bf7ae1666c268882b6',
        projectId: projectId,
        releaseId: releaseId,
        componentDid: componentDid,
      },
    });
    console.log('选定资源:', resources);
  } catch (error) {
    console.error('获取选定资源时出错:', error);
  }
}

fetchSelectedResources('z2qa7...', 'z3t8b...', 'z2qa...');

参数

  • input RequestGetSelectedResourcesInput (required) — 查询的输入对象。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 项目的 ID。
    • releaseId string (required) — 发布版本的 ID。
    • componentDid string (required) — 要获取其选定资源的组件的 DID。

返回类型

返回一个 ResponseGetSelectedResources 对象,其中包含一个资源字符串数组。

响应示例

getSelectedResources 的响应

json
{
  "code": "ok",
  "resources": [
    "resource:zde22a874bf7ae1666c268882b6...",
    "resource:zde22a874bf7ae1666c268882b7..."
  ]
}

要创建、更新或删除这些实体,请转到 发布与项目变更 部分。