Include the library header: `#include
Create the server object: `AsyncWebServer server(80);`
Set the server port in the constructor: `AsyncWebServer server(8080);`
Configure Wi-Fi before starting the server:
`WiFi.mode(WIFI_STA);`
`WiFi.begin(ssid, password);`
Set a static IP before `WiFi.begin()`:
`WiFi.config(local_IP, gateway, subnet);`
Set request handlers:
`server.on(“/”, HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, “text/plain”, “OK”); });`
Set POST handlers:
`server.on(“/post”, HTTP_POST, [](AsyncWebServerRequest *request){ request->send(200); });`
Set route parameters:
`server.on(“/api”, HTTP_GET, [](AsyncWebServerRequest *request){ if (request->hasParam(“value”)) { } });`
Set upload handler:
`server.on(“/upload”, HTTP_POST, [](AsyncWebServerRequest *request){}, handleUpload);`
Set default headers:
`DefaultHeaders::Instance().addHeader(“Access-Control-Allow-Origin”, “*”);`
Set response headers:
`AsyncWebServerResponse *response = request->beginResponse(200, “text/plain”, “OK”);`
`response->addHeader(“Cache-Control”, “no-cache”);`
Set content type in responses:
`request->send(200, “application/json”, “{“status”:”ok”}”);`
Set authentication:
`if (!request->authenticate(“user”, “pass”)) return request->requestAuthentication();`
Set middleware-like checks inside handlers:
`if (!request->hasParam(“token”)) return request->send(400);`
Set file serving options:
`request->send(SPIFFS, “/index.html”, “text/html”);`
Set template processor:
`server.on(“/”, HTTP_GET, [](AsyncWebServerRequest *request){ request->send(SPIFFS, “/index.html”, String(), false, processor); });`
Set server timeouts using request logic:
`request->setTimeout(5000);`
Set CORS headers manually:
`response->addHeader(“Access-Control-Allow-Methods”, “GET,POST,PUT,DELETE”);`
Set server start:
`server.begin();`
Set logging level if supported by your environment:
`Serial.setDebugOutput(true);`
Set custom parameters through global variables before `server.begin()`
Set route-specific configuration with lambdas capturing variables:
`server.on(“/path”, HTTP_GET, [value](AsyncWebServerRequest *request){ });`
Set websocket configuration if using websockets:
`AsyncWebSocket ws(“/ws”);`
`server.addHandler(&ws);`
Set event handlers for websocket:
`ws.onEvent(onEvent);`
Set file system mount options before serving files:
`SPIFFS.begin(true);`
`LittleFS.begin(true);`
Set DNS captive portal support if needed:
`DNSServer dnsServer;`
Set server behavior flags in your own code before initialization
