HarmonyOS_ArkTs_API(1)
概述
此API服務模塊是獨自開發的應用程序的核心骨架,提供了鴻蒙OS ArkTS客戶端組件和Java Spring Boot后端之間的強大通信接口。該模塊采用清晰的架構方法處理所有HTTP請求、響應解析和錯誤處理,確保系統各部分間通信的一致性和可靠性。
核心組件
API配置管理
該服務實現了靈活的環境配置系統,允許應用程序在不修改代碼的情況下針對不同的后端環境:
class ApiConfig {readonly ANDROID_EMULATOR: string = 'http://10.0.2.2:8080/api';readonly DEVICE: string = 'http://192.168.31.75:8080/api';readonly LOCAL: string = 'http://localhost:8080/api';getUrl(env: string): string {switch (env) {case 'ANDROID_EMULATOR':return this.ANDROID_EMULATOR;case 'DEVICE':return this.DEVICE;case 'LOCAL':default:return this.LOCAL;}}
}
通用HTTP請求處理器
該服務的核心是一個多功能request<T>
方法,處理不同的HTTP方法、URL構建、參數序列化和響應解析:
export async function request<T>(method: RequestMethod, endpoint: string, params: QueryParams = {}, data: RequestData = {}): Promise<T> {// URL構建和參數處理let url = `${BASE_URL}${formattedEndpoint}`;if (Object.keys(params).length > 0) {// 查詢參數序列化邏輯}// 請求配置與認證// ...// 響應處理和解析// ...
}
類型安全與接口定義
服務利用TypeScript的泛型類型確保API調用的類型安全,并定義了請求和響應數據結構的接口:
export interface RequestData {id?: number;userId?: number;title?: string;// 其他字段...user?: UserRequest;dream?: DreamRequest;
}export interface UserRequest {id: number;
}export interface DreamRequest {id: number;
}
主要特性
- 認證集成:自動從
UserSession
注入認證令牌到API請求中 - 一致錯誤處理:實現標準化的錯誤捕獲和報告機制
- 資源URL處理:包含智能圖片URL處理以處理不同環境路徑
- 類型安全響應:利用TypeScript泛型確保API響應的類型安全
- 集中式API邏輯:所有API端點在單一服務中定義,便于維護
設計模式
API服務實現了幾種關鍵設計模式:
- 單例模式:用于配置管理
- 適配器模式:在前端和后端數據格式之間進行轉換
- 外觀模式:為復雜的HTTP子系統提供簡化界面
- 倉庫模式:將數據訪問操作抽象為領域特定方法
性能優化
該服務包括多種優化技術:
- 可配置的超時設置
- finally塊中的資源清理
- 不同響應類型的高效解析
- 防御性錯誤處理以防止應用崩潰
業務邏輯集成
特定領域的API方法如createPost()
、getDreamById()
和likePost()
建立在通用請求處理器之上,提供了面向業務的接口,同時保護應用程序不受HTTP實現細節的影響,保持后端通信的一致性。
該架構的模塊化設計使其具有高度的可維護性和可擴展性,允許在最小代碼重復的情況下添加新的API端點,并確保一致的行為。