using Refit; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CloudGaming.Core.AgileConfig.AgileConfigClient { /// /// AgileConfig 的 API 客户端接口,用于与 AgileConfig 服务器交互 /// public interface IAgileConfigClient { /// /// 获取所有应用的列表 /// /// 包含所有应用的列表 [Get("/api/App")] Task> GetAllAppsAsync(); /// /// 根据应用 ID 获取应用详情 /// /// 应用的唯一标识符 /// 应用的详细信息 [Get("/api/App/{id}")] Task GetAppByIdAsync(string id); /// /// 添加一个新的应用 /// /// 应用的详细信息 /// 异步任务 [Post("/api/App")] Task AddAppAsync([Body] ApiAppVM app); /// /// 更新指定 ID 的应用 /// /// 应用的唯一标识符 /// 更新后的应用信息 /// 异步任务 [Put("/api/App/{id}")] Task UpdateAppAsync(string id, [Body] ApiAppVM app); /// /// 删除指定 ID 的应用 /// /// 应用的唯一标识符 /// 异步任务 [Delete("/api/App/{id}")] Task DeleteAppAsync(string id); /// /// 发布应用的配置 /// /// 应用的唯一标识符 /// 发布的环境(如:生产、测试) /// 异步任务 [Post("/api/App/publish")] Task PublishAppConfigAsync([Query] string appId, [Query] string env); [Get("/api/Config/app/{appId}")] Task> GetAppConfigsAsync(string appId, string env = null); [Get("/api/Config")] Task> GetAppConfigAsync(string appId, string env = null); // Add new configuration [Post("/api/Config")] Task AddConfigAsync([Body] ApiConfigVM config, string env = null); // Fetch all nodes [Get("/api/Node")] Task> GetAllNodesAsync(); // Add a new node [Post("/api/Node")] Task AddNodeAsync([Body] ApiNodeVM node); // Delete node by address [Delete("/api/Node")] Task DeleteNodeAsync(string address); } }