本節提供了用於管理發布專案、發行版本及相關資源的 GraphQL 查詢的詳細參考。這些查詢可讓您擷取有關 blocklet 發布生命週期的資訊。對於修改此類資料的操作,例如建立或更新專案和發行版本,請參閱 發布與專案突變文件。
getProjects
擷取與特定 blocklet 關聯的發布專案列表。
範例
Get a list of projects
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— 依租戶範圍篩選專案。
- did
返回類型
返回一個 ResponseGetProjects 物件,其中包含一個 Project 物件陣列和分頁詳細資訊。
範例回應
Response for getProjects
{
"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
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— 用於追蹤請求的訊息識別碼。
- did
返回類型
返回一個包含 Project 詳細資訊的 ResponseGetProject 物件。
範例回應
Response for getProject
{
"code": "ok",
"project": {
"id": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
"type": "pack",
"blockletDid": "z8ia262k3g55v12a874bf7ae1666c268882b6",
"blockletTitle": "我的超棒 Blocklet",
"blockletDescription": "一個能做很棒事情的 blocklet。",
"autoUpload": true,
"connectedStores": []
}
}getReleases
擷取指定發布專案的發行版本列表。
範例
Get releases for a project
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— 分頁資訊。
- did
返回類型
返回一個 ResponseGetReleases 物件,其中包含一個 Release 物件陣列和分頁資訊。
範例回應
Response for getReleases
{
"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
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) — 要擷取的發行版本的唯一識別碼。
- did
返回類型
返回一個包含 Release 詳細資訊的 ResponseGetRelease 物件。
範例回應
Response for getRelease
{
"code": "ok",
"release": {
"id": "z3t8bCDE...",
"projectId": "z2qa7xsgE59VUp2r1LqfE9F2fJ6dZ8cR9yB3",
"blockletVersion": "1.2.0",
"blockletTitle": "我的超棒 Blocklet",
"note": "包含新功能的初始版本。",
"status": "published"
}
}getSelectedResources
擷取在發行版本中為特定元件選擇的資源識別碼列表。
範例
Get selected resources for a release
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。
- did
返回類型
返回一個 ResponseGetSelectedResources 物件,其中包含一個資源字串陣列。
範例回應
Response for getSelectedResources
{
"code": "ok",
"resources": [
"resource:zde22a874bf7ae1666c268882b6...",
"resource:zde22a874bf7ae1666c268882b7..."
]
}要建立、更新或刪除這些實體,請前往 發布與專案突變 部分。