#pragma once #include "ShrinkwrapManager.h" #include "HttpServer.h" #include #include class ShellExportHandler { public: // 主要HTTP处理方法 static HttpResponse HandleShrinkwrapShellRequest(const HttpRequest& request); private: // JSON解析辅助方法 static std::string ExtractJsonValue(const std::string& json, const std::string& key); static bool ExtractJsonBoolValue(const std::string& json, const std::string& key, bool default_value = false); static int ExtractJsonIntValue(const std::string& json, const std::string& key, int default_value = 0); static double ExtractJsonDoubleValue(const std::string& json, const std::string& key, double default_value = 0.0); // JSON转义辅助方法 static std::string EscapeJsonString(const std::string& input); // 请求验证方法 static bool ValidateHttpRequest(const HttpRequest& request, std::string& error_message); // 参数解析方法 static ShrinkwrapShellRequest ParseShrinkwrapRequest(const std::string& json_body); // 响应格式化方法 static HttpResponse FormatSuccessResponse(const ShrinkwrapShellResult& result); static HttpResponse FormatErrorResponse(int status_code, const std::string& error_message); // 辅助工具方法 static std::string Trim(const std::string& str); static bool StartsWith(const std::string& str, const std::string& prefix); static bool EndsWith(const std::string& str, const std::string& suffix); };