#pragma once #include "ModelSearchEngine.h" #include "HttpServer.h" #include #include class ModelSearchHandler { public: // 主要HTTP处理方法 static HttpResponse HandleModelSearchRequest(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); static std::vector ExtractJsonArrayValue(const std::string& json, const std::string& key); // JSON转义辅助方法 static std::string EscapeJsonString(const std::string& input); // 请求验证方法 static bool ValidateHttpRequest(const HttpRequest& request, std::string& error_message); // 参数解析方法 static ModelSearchRequest ParseSearchRequest(const std::string& json_body); // 响应格式化方法 static HttpResponse FormatSuccessResponse(const ModelSearchResult& 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); };