Die wao.io API orientiert sich am REST Paradigma und bietet Dir die Möglichkeit über bestimmte Endpoints und JSON Schemas, Aufgaben, wie zum Beispiel Cache Leerungen, zu automatisieren.
Authentifikation
Die API ist nur für authentifizierte Benutzer zugänglich. Die Authentifizierung findet dabei über einen zuvor generierten API Token statt, der dann über den Authorization
HTTP Header übertragen wird.
Einen API Token erhälst Du direkt von uns. Schreib uns dazu einfach eine Email an support@wao.io. Mit diesem API Token kannst Du alle Sites, die Du zuvor in unserer Webapp angelegt hast, steuern.
Sende den API Token bei jedem Request im Authorization
Header an die API:
Authorization: Bearer MeinTokenABC123
Endpoints
Alle API Requests gehen an den https://api.wao.io/v1
Basepath. Für jede Aufgabe gibt es einen bestimmten Endpoint. Du findest die festgelegten Schema Definitionen zu den einzelnen Endpoints hier im Swagger Format: https://api.wao.io/doc/.
Die Aufgaben beziehen sich meistens auf eine bestimmte Site. Um der API mitzuteilen, mit welcher Site Du arbeiten willst, musst Du die Site ID der Site finden und diese als Paramter in der URL des jeweiligen Endpoints angeben. Du findest die Site ID Deiner Site in unserer Webapp unter Wartung innerhalb der jeweiligen Site.

Für Endpoints die mit Sites arbeiten steht folgende URL bereit: /sites/deineSiteIdABC123
.
Ein kompletter API Request könnte also so aussehen:
curl -X POST \
"https://api.wao.io/v1/sites/deineSiteIdABC123/caches?action=invalidate" \
-H "Accept: application/json" \
-H "Authorization: Bearer MeinTokenABC123"
Cache leeren
Einfache Schnittstelle
Mit der einfachen Schnittstelle kann der gesamte Cache einer Site auf zwei Arten invalidiert werden:
invalidate
: Der Origin-Content wird invalidiert. Schnell und günstig, da bereits optimierte Bilder,
die sich nicht geändert haben, behalten werden.purge
: Der Cache wird vollständig geleert, auch optimierte Bilder werden gelöscht. Optimierungen müssen
nochmal durchgeführt werden.
Das Invalidieren des Origin-Contents geschieht dabei über folgenden Endpoint:
POST /sites/deineSiteIdABC123/caches?action=invalidate
während das vollständige Leeren über diesen Endpoint ausgeführt werden kann:
POST /sites/deineSiteIdABC123/caches?action=purge
Ein Body darf bei beiden Endpoints nicht gesendet werden.
Wenn die Aufgabe erfolgreich war erhältst Du einen HTTP Status Code 202
.
Das eigentliche Leeren der Caches passiert asynchron im Hintergrund.
Flexible Schnittstelle
Die flexible Schnittstelle sollte verwendet werden, wenn nur Teile des Caches invalidiert werden sollen:
exactMatches
verwirft jeweils genau die Ressource(n), die durch Domain, Pfad und Query spezifiziert wurdenpaths
invalidiert alle Ressourcen, deren Pfadpräfix mit einem der angegebenen Pfade übereinstimmt
Beispiel:
POST /sites/deineSiteIdABC123/caches/invalidate
{
"domains": [ "example.net" ],
"paths": [ "/images/news", "/text/news" ],
"exactMatches": [ "/news?item=1", "/news?13" ]
}
Der Body muss bei der Anfrage mitgesendet werden und mindestens die Eigenschaft domains
enthalten.
Die Eigenschaften paths
und exactMatches
sind optional und können jeweils bis zu 1000 strings enthalten,
die die zu invalidierenden Objekte spezifizieren. Wenn pathes
und exactMatches
nicht angegeben werden
oder leer sind, werden keine Objekte invalidiert.
Wenn die Aufgabe erfolgreich war, erhältst Du einen HTTP Status Code 202
.
Das eigentliche Leeren der Caches passiert asynchron im Hintergrund.