6 #ifndef API_SERVER_HPP__
7 #define API_SERVER_HPP__
15 #include <ESPAsyncWebServer.h>
20 using CbStringT = std::function<void(
const String&)>;
22 using CbFloatT = std::function<void(
const float)>;
24 using CbIntT = std::function<void(
const int)>;
26 using CbVoidT = std::function<void(
void)>;
30 using CmdMapT = std::map<String, CbStringT>;
32 using TemplateMapT = std::map<String, String>;
50 AsyncWebServer* backend;
52 AsyncEventSource* event_source;
56 TemplateMapT template_map;
58 bool reboot_requested;
66 void set_template(
const char* placeholder,
const char* replacement);
103 void _add_rewrites();
105 void _add_redirects();
107 void _add_handlers();
109 void _add_event_source();
111 void _register_sse_on_connect_callback();
116 void _on_root_request(AsyncWebServerRequest *request);
118 void _on_cmd_request(AsyncWebServerRequest *request);
121 void _on_update_request(AsyncWebServerRequest *request);
123 static void _on_update_body_upload(
124 AsyncWebServerRequest *request,
const String& filename,
125 size_t index, uint8_t *data,
size_t len,
bool final);
127 static void _on_request(AsyncWebServerRequest *request);
128 static void _on_body(AsyncWebServerRequest *request,
129 uint8_t *data,
size_t len,
size_t index,
size_t total);
130 static void _on_upload(AsyncWebServerRequest *request,
const String& filename,
131 size_t index, uint8_t *data,
size_t len,
bool final);
135 String _template_processor(
const String& placeholder);
Application, network and hardware settings, constants and preset configuration.
AJAX HTTP API server for ESP-AJAX-Lab.
Definition: api_server.hpp:45
void set_template(const char *placeholder, const char *replacement)
Definition: api_server.cpp:57
void register_api_cb(const char *cmd_name, CbStringT cmd_callback)
Definition: api_server.cpp:66
void begin()
Definition: api_server.cpp:35
Definition: app_config.hpp:79