跳到主要內容

發布與專案

本節提供了用於管理發布專案、發行版本及相關資源的 GraphQL 查詢的詳細參考。這些查詢可讓您擷取有關 blocklet 發布生命週期的資訊。對於修改此類資料的操作,例如建立或更新專案和發行版本,請參閱 發布與專案突變文件

getProjects

擷取與特定 blocklet 關聯的發布專案列表。

範例

Get a list of projects

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:', projects);
    console.log('Paging Info:', paging);
  } catch (error) {
    console.error('Error fetching projects:', error);
  }
}

fetchProjects();

參數

  • input RequestGetProjectsInput (required) — 查詢的輸入物件。
    • did string (required) — blocklet 的 DID。
    • paging PagingInput — 分頁資訊。
    • componentDid string — 依元件 DID 篩選專案。
    • tenantScope string — 依租戶範圍篩選專案。

返回類型

返回一個 ResponseGetProjects 物件,其中包含一個 Project 物件陣列和分頁詳細資訊。

範例回應

Response for 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 擷取單一發布專案的詳細資訊。

範例

Get a single project

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 Details:', project);
  } catch (error) {
    console.error('Error fetching project:', error);
  }
}

fetchProject('z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3');

參數

  • input RequestProjectInput (required) — 查詢的輸入物件。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 要擷取的專案的唯一識別碼。
    • messageId string — 用於追蹤請求的訊息識別碼。

返回類型

返回一個包含 Project 詳細資訊的 ResponseGetProject 物件。

範例回應

Response for getProject

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

getReleases

擷取指定發布專案的發行版本列表。

範例

Get releases for a project

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:', releases);
  } catch (error) {
    console.error('Error fetching releases:', error);
  }
}

fetchReleases('z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3');

參數

  • input RequestGetReleasesInput (required) — 查詢的輸入物件。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 要擷取其發行版本的專案 ID。
    • paging PagingInput — 分頁資訊。

返回類型

返回一個 ResponseGetReleases 物件,其中包含一個 Release 物件陣列和分頁資訊。

範例回應

Response for 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 擷取單一發行版本的詳細資訊。

範例

Get a single release

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 Details:', release);
  } catch (error) {
    console.error('Error fetching release:', error);
  }
}

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

參數

  • input RequestReleaseInput (required) — 查詢的輸入物件。
    • did string (required) — blocklet 的 DID。
    • projectId string (required) — 父專案的 ID。
    • releaseId string (required) — 要擷取的發行版本的唯一識別碼。

返回類型

返回一個包含 Release 詳細資訊的 ResponseGetRelease 物件。

範例回應

Response for getRelease

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

getSelectedResources

擷取在發行版本中為特定元件選擇的資源識別碼列表。

範例

Get selected resources for a release

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('Selected Resources:', resources);
  } catch (error) {
    console.error('Error fetching selected resources:', 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 物件,其中包含一個資源字串陣列。

範例回應

Response for getSelectedResources

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

要建立、更新或刪除這些實體,請前往 發布與專案突變 部分。