Files
dag_engine_ui/http_client.h
T
egutierrez 44026d0a70 feat: cliente HTTP REST + main panel demo (issue 0095 step 3)
- http_client.{h,cpp}: TCP plain (copia de registry_dashboard, sin SSL).
- data_http.{h,cpp}: API DAG (list/get/runs/trigger) + parser nlohmann/json.
- vendor/nlohmann/json.hpp: vendored.
- main.cpp: panel "Fetch /api/dags" demo, lista DAGs con schedule.
- CMakeLists.txt: anade http_client.cpp + data_http.cpp.

Build verificado. WS y tabs (data_table::render) en commits siguientes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 16:44:40 +02:00

31 lines
895 B
C++

#pragma once
// Minimal HTTP client — no threading, no SSL, just plain TCP to localhost.
// Works with both win32 and posix MinGW thread models.
#include <string>
struct HttpResponse {
int status = 0;
std::string body;
bool ok() const { return status >= 200 && status < 300; }
};
// Simple blocking HTTP GET/POST over TCP sockets.
// host: "127.0.0.1", port: 8484
class HttpClient {
public:
HttpClient(const std::string& host, int port);
HttpResponse get(const std::string& path);
HttpResponse post(const std::string& path, const std::string& body,
const std::string& content_type = "application/json");
private:
std::string host_;
int port_;
int timeout_sec_ = 5;
HttpResponse request(const std::string& method, const std::string& path,
const std::string& body, const std::string& content_type);
};