ServiceStack 要求 DTO 設計
ServiceStack 的 API 設計與 WCF 和 Web API 方法有很大不同。它強調基於訊息的服務,其中整個查詢在請求 DTO 中捕獲,而不是在伺服器方法簽名中。
組合 RPC 呼叫
ServiceStack 允許多個 RPC 呼叫透過單一遠端訊息和服務實作來完成。例如,單一服務可以透過 ID、使用者名稱或電子郵件來尋找客戶。
基於訊息與 RPC 設計
在 ServiceStack 中,Request DTO 代表請求的本質並捕獲所有相關資訊。這與 WCF 和 Web API 等 RPC 服務不同,其中方法參數指定請求。
分離調用語義和回應類型
服務根據呼叫語義進行分組(過濾與組合)和回應類型(單一與多個)。這允許乾淨且一致的 API 設計。
區分服務操作與類型
服務操作(請求 DTO)是操作(動詞),而它們回傳的 DTO 類型是實體(名詞)。將它們分開以保持清晰。
傳回通用回應
ServiceStack 的新 API 消除了回應中對 ResponseStatus 屬性的需求。通用 ErrorResponse DTO 將在適當的時候拋出。
保持一致的命名法
為查詢唯一欄位的服務保留「Get」動詞。使用「尋找」或「搜尋」來篩選並傳回多個結果的服務。
自描述服務合約
在請求 DTO 中使用描述性欄位名稱您的 API 更加自文檔化。
服務實作
服務可以用[Authenticate]註解來授權。透過在 AppHost 中註冊驗證器,可以使用 Fluent Validation 進行輸入驗證。
錯誤處理與驗證
異常或 Fluent Validation 可用於錯誤處理。驗證器是非侵入性的,可以透過分層方法添加,而無需修改服務實作或 DTO 類別。
以上是ServiceStack 的請求 DTO 設計與 WCF 和 Web API 方法有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!