本節深入探討驅動 @blocklet/did-space-js SDK 的基本原則和架構模式。理解這些概念將有助於您更有效地使用此程式庫,並更自信地排解問題。此 SDK 建立在三大支柱之上:穩健的命令模式、靈活的驗證方法和安全的請求簽章機制。
命令模式
此 SDK 不在主要的 SpaceClient 物件上設置數十個方法,而是採用了命令模式。此設計選擇提供了一個簡潔且可擴展的架構。
其運作方式如下:
封裝
每個獨立的操作(例如上傳檔案或列出目錄)都被封裝到其自身的
Command類別中。舉例來說,要上傳檔案,您會使用PutObjectCommand。標準化
每個命令都有一個標準化的結構,接受一個
input物件作為其參數,並回傳一個結構化的output物件。執行
SpaceClient作為一個通用的執行器。您建立一個命令的實例,然後將其傳遞給client.send()方法,該方法會處理驗證、請求簽章和 HTTP 通訊的底層邏輯。
這種關注點分離——命令定義做什麼而客戶端處理如何做——使得 SDK 變得可預測且易於擴展。

客戶端初始化與驗證
在傳送任何命令之前,您必須使用適當的設定和驗證憑證來初始化一個 SpaceClient 實例。此 SDK 的設計非常靈活,支援多種驗證策略以適應不同的使用情境,從伺服器端應用程式到客戶端元件。
設定客戶端的主要方式是透過傳遞給其建構函式的 SpaceClientOptions 物件。該物件指定了目標 DID Space 以及存取它所需的憑證。
客戶端初始化與驗證
了解初始化 SpaceClient 的不同方法,包括使用錢包、私鑰或授權權杖。
設計安全:請求簽章
安全是 DID Space 的基石。由 SDK 傳送的每個 API 請求都經過加密簽章,以確保其真實性和完整性。這可以防止未經授權的存取以及傳輸中的資料被竄改。
以下是此過程的概要說明:
- 當您呼叫
client.send(command)時,SDK 會建構完整的 HTTP 請求。 - 接著,它會透過雜湊請求的內容(URL、方法、內文)並使用您錢包中的私鑰對該雜湊值進行簽章,為該特定請求建立一個獨特的數位簽章。
- 此簽章連同您的公鑰,會作為請求標頭的一部分傳送。
- DID Space 伺服器接收到請求後,會在其端重新計算簽章,並使用您的公鑰驗證其與您傳送的簽章是否相符。
如果簽章相符,伺服器就知道該請求是真實的且來自您。如果不符,它會拒絕該請求。
請求簽章
深入了解安全模型,探索請求如何經過加密簽章和驗證,以保證資料完整性。
後續步驟
現在您對核心概念有了概要的理解,可以更詳細地探索它們,或轉向實用指南。