Web Hosting
Web Hosting ist eine Ressource, die eine erstellte statische Website in einen Space hochlädt und unter der Adresse {subdomain}.weegloo.app bereitstellt. Am Beispiel eines Bekleidungsshops: Die erstellte Shop-Website unter dailywear-shop.weegloo.app bereitzustellen, entspricht einem Web Hosting.
Der Ablauf des Hochladens ist wie folgt. Zunächst packen Sie das Build-Ergebnis als ZIP oder tar.gz und laden es über die Upload API hoch, um ein Upload zu erhalten. Dieses Upload referenzieren Sie, um mit POST /web-hostings ein Web Hosting zu erstellen. Sobald das System die hochgeladenen Dateien verarbeitet hat und sys.state auf COMPLETED steht, ist die Website über url erreichbar. In der CMA ist Web Hosting eine untergeordnete Ressource des Space, und der Pfad basiert auf /spaces/{spaceId}/web-hostings.
Ressourcenstruktur
Nachstehend sehen Sie die Antwort einer Einzelabfrage des fertig verarbeiteten Web Hosting "DailyWear Shop-Website". Neben sys (Systemattribute) enthält es Hauptattribute (name, description, isSpa, subdomain, url, pageMetas).
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7PWeb01Examp",
"type": "WebHosting",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T11:40:00.000Z",
"updatedAt": "2026-06-18T11:40:05.000Z",
"state": "COMPLETED",
"totalFileSize": 245786,
"originMetas": [
{
"file": "index.html",
"meta": {
"title": "Daily Wear Store",
"description": "Everyday clothing store"
}
}
],
"version": 3
},
"name": "DailyWear Shop-Website",
"description": "Statische Website für den Shop für Kleidung und Accessoires",
"isSpa": true,
"subdomain": "dailywear-shop",
"url": "https://dailywear-shop.weegloo.app",
"pageMetas": [
{
"file": "index.html",
"meta": {
"title": "DailyWear - clothes for every day",
"description": "Everyday pieces you can wear to work and on weekends.",
"image": "https://dailywear-shop.weegloo.app/og-cover.png"
}
}
]
}Wichtige Schlüssel:
subdomain: Die Subdomain, unter der die Website bereitgestellt wird. Im Beispiel oben ist esdailywear-shop, die endgültige Adresse lautetdailywear-shop.weegloo.app.url: Die Adresse, unter der die Website nach Abschluss der Verarbeitung erreichbar ist.isSpa: Gibt an, ob es sich um eine Single-Page-Application (SPA) handelt. Beitruewerden alle Pfadanfragen anindex.htmlweitergeleitet.state: Der Verarbeitungsstatus des Deployments der hochgeladenen Dateien. Wird unten unter Systemattribute (sys) erläutert.pageMetas: Die je Dokument überschriebenen Meta-Tag-Werte.sys.originMetasenthält die Werte, wie sie vor dem Überschreiben waren. Beides wird unten unter Metadaten je Dokument erklärt.
Systemattribute (sys)
Jedes Web Hosting führt gemeinsame Systemattribute im Objekt sys. space, createdBy und updatedBy liegen in der Refer-Form ({ "sys": { "id", "type": "Refer", "targetType" } }) vor.
| Attribut | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige Kennung der Ressource. Wird im {webHostingId} der Pfade für Einzelabfrage, Aktualisierung und Löschung verwendet. |
type | string | Ressourcenart. Bei Web Hosting immer "WebHosting". |
space | Refer<Space> | Der Space, zu dem dieses Web Hosting gehört. |
createdBy | Refer<User> | Der Benutzer, der die Ressource erstellt hat. |
createdAt | string (date-time) | Erstellungszeitpunkt. |
updatedBy | Refer<User> | Der Benutzer, der die Ressource zuletzt geändert hat. |
updatedAt | string (date-time) | Zeitpunkt der letzten Änderung. |
state | string (enum) | Verarbeitungsstatus des Deployments. Einer der vier Werte unten. |
error | string | Bei fehlgeschlagener Verarbeitung der Grund dafür. Andernfalls leer. |
totalFileSize | integer | Gesamtgröße der hochgeladenen Dateien (in Byte). |
originMetas | PageMeta[] | Die Meta-Tag-Werte, die die Dokumente ursprünglich trugen. Nur bei einem Web Hosting gefüllt, das durch die Installation einer MarketApp entstanden ist. Wird unten unter Metadaten je Dokument erklärt. |
version | integer (≥1) | Ressourcenversion. Erhöht sich bei jeder Erstellung und Änderung um 1. Dieser Wert muss bei Aktualisierungs- und Teilaktualisierungsanfragen als x-weegloo-version mitgesendet werden. |
state gibt die Verarbeitungsphase des Deployments der hochgeladenen Dateien an. Es ist nicht der Veröffentlichungsstatus eines Content; bei Web Hosting gibt es kein Konzept von Veröffentlichung oder Archivierung. Sobald die Dateien verarbeitet sind und COMPLETED erreichen, ist die Website über url erreichbar.
state | Bedeutung |
|---|---|
PENDING | Wartet auf Verarbeitung. |
PROCESSING | In Verarbeitung. |
COMPLETED | Verarbeitung abgeschlossen. Über url erreichbar. |
FAILED | Verarbeitung fehlgeschlagen. Der Grund steht in sys.error. |
Hauptattribute
Die Hauptattribute eines Web Hosting sind die folgenden.
| Attribut | Typ | Beschreibung |
|---|---|---|
name | string (1-64) | Name des Web Hosting. Bei der Erstellung erforderlich. |
description | string (≤128) | Beschreibung. Optional. |
isSpa | boolean | Gibt an, ob es sich um eine Single-Page-Application handelt. Bei true werden alle Pfadanfragen an index.html weitergeleitet (für SPA-Routing). Bei der Erstellung erforderlich. |
subdomain | string (3-32) | Subdomain für die Bereitstellung. Muster ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ (Kleinbuchstaben, Ziffern, Bindestriche; am Anfang und Ende kein Bindestrich erlaubt). Bei der Erstellung erforderlich. |
upload | Refer<Upload> | Referenz auf die hochzuladenden Dateien. ZIP oder tar.gz, mit index.html im Stammverzeichnis und Assets, die über relative Pfade referenziert werden müssen. |
url | string | Zugriffs-URL nach Abschluss der Verarbeitung. Wird vom System ausgefüllt. |
pageMetas | PageMeta[] | Die je Dokument zu überschreibenden Meta-Tag-Werte. Optional. Wird unten unter Metadaten je Dokument erklärt. |
customDomain | string | Verbundene benutzerdefinierte Domain. Optional. Wird unten unter Benutzerdefinierte Domain erläutert. |
Subdomain prüfen
Bevor Sie ein Web Hosting erstellen, können Sie prüfen, ob die gewünschte Subdomain frei ist. Übergeben Sie an GET /web-hostings/availability?subdomain=... die zu prüfende Subdomain als subdomain-Query.
Die Antwort hat die folgende Form; ist available gleich true, kann diese Subdomain verwendet werden.
{ "subdomain": "dailywear-shop", "available": true }Benutzerdefinierte Domain
Anstelle der Standardadresse {subdomain}.weegloo.app können Sie eine eigene Domain mit dem Web Hosting verbinden. Der Status der verbundenen Domain wird durch das Objekt customDomain dargestellt und hat die Form { id, domain, dns, cert }. dns und cert geben jeweils den Status der Domain-Eigentumsprüfung (DNS) und der Zertifikatsausstellung (cert) an und haben beide die Form { status, txtName, txtContent }. txtName und txtContent sind Name und Wert des DNS-TXT-Eintrags, der auf der Domain-Seite registriert werden muss.
{
"id": 1024,
"domain": "shop.dailywear.example",
"dns": {
"status": "pending",
"txtName": "_weegloo.shop.dailywear.example",
"txtContent": "weegloo-verify=3trmXRM3RqbgSnifyg7PWebVerifyEx"
},
"cert": {
"status": "pending",
"txtName": "_acme-challenge.shop.dailywear.example",
"txtContent": "acme-verify=3trmXRM3RqbgSnifyg7PWebCertEx"
}
}Nachdem Sie den TXT-Eintrag auf der Domain-Seite registriert haben, lösen Sie die Prüfung mit PUT /web-hostings/{webHostingId}/custom-domain/status/verify aus und fragen den aktuellen Status mit GET /web-hostings/{webHostingId}/custom-domain/status ab. Nach Abschluss der Prüfung wechselt dns.status auf active und cert.status auf ok. Wird die Statusabfrage für ein Web Hosting aufgerufen, mit dem keine benutzerdefinierte Domain verbunden ist, antwortet die API mit einem Fehler (siehe Fehler).
Metadaten je Dokument
Sie können die Meta-Tags im <head> jedes Dokuments einer hochgeladenen Website überschreiben. Titel, Beschreibung und Bild, die in Suchergebnissen und in Link-Vorschauen von Messengern erscheinen, ändern sich auf diese Werte. Der Zweck ist, sie mit einer einzigen Anfrage zu ändern, statt die Dateien neu zu bauen und erneut hochzuladen.
Bearbeiten ist nur bei einem Web Hosting möglich, das durch die Installation einer MarketApp entstanden ist. Sobald Sie die Dateien über upload ersetzen, ist Bearbeiten nicht mehr möglich, und sys.originMetas wird dabei geleert. Eine Anfrage, die gegen diese Bedingung verstößt, wird abgelehnt (siehe Fehler).
Die Werte stehen im Array pageMetas, und ein Eintrag zielt auf ein Dokument.
| Attribut | Typ | Beschreibung |
|---|---|---|
file | string (1-1024) | Der relative Pfad des Zieldokuments. Zum Beispiel index.html, about/index.html. |
meta | WebHostingMeta | Die Slot-Werte, die auf dieses Dokument angewendet werden. |
sys.originMetas hat dieselbe Form und enthält die Werte, die die Dokumente vor dem Überschreiben ursprünglich trugen. Zum Zurücksetzen senden Sie diese Werte erneut.
Slots
Die Schlüssel von meta heißen Slots. Ein Slot ändert mehrere Tags zugleich.
| Slot | Maximale Länge | Geänderte Tags |
|---|---|---|
title | 200 | <title>, og:title, twitter:title |
description | 500 | description, og:description, twitter:description |
canonical | 2048 | link[rel=canonical], og:url |
image | 2048 | og:image, twitter:image |
siteName | 200 | og:site_name |
favicon | 2048 | link[rel=icon], link[rel="shortcut icon"], link[rel=apple-touch-icon] |
themeColor | 32 | theme-color |
Fehlt ein Tag im Dokument, wird es erzeugt und eingefügt. Fünf bilden die Ausnahme: twitter:title, twitter:description, twitter:image, link[rel="shortcut icon"] und link[rel=apple-touch-icon] ändern sich nur, wenn das Dokument sie bereits hat, und werden nicht neu erzeugt, wenn es sie nicht hat.
Was der Wert bewirkt
Das Ergebnis hängt von der Form des gesendeten Werts ab.
| Was Sie in die Anfrage schreiben | Ergebnis |
|---|---|
| Der Slot-Schlüssel fehlt | Die aktuelle Einstellung bleibt bestehen. |
Der Slot-Schlüssel ist null | Die aktuelle Einstellung bleibt bestehen. |
| Der Slot-Schlüssel ist eine leere Zeichenkette | Dieses Tag wird aus dem Dokument entfernt. |
| Der Slot-Schlüssel hat einen Wert | Er wird mit diesem Wert überschrieben. |
Ein Dokumenteintrag fehlt in pageMetas | Die Einstellung dieses Dokuments bleibt bestehen. |
pageMetas fehlt | Die Einstellungen aller Dokumente bleiben bestehen. |
Achten Sie besonders auf die letzten beiden Zeilen. Der Server führt das Gesendete je Dokument und je Slot zusammen. Deshalb löscht das Weglassen eines Eintrags aus dem Array keine Einstellung; zum Löschen müssen Sie auf diesem Slot eine leere Zeichenkette angeben.
Eine leere Zeichenkette entfernt das Tag, statt den ursprünglichen Zustand wiederherzustellen. Ein Tag, das das Dokument ursprünglich trug, verschwindet mit. Um den ursprünglichen Wert wiederherzustellen, senden Sie den in sys.originMetas verbliebenen Wert.
Der folgende Anfragerumpf ändert nur den Titel von index.html und entfernt dessen Beschreibungs-Tag.
{
"pageMetas": [
{
"file": "index.html",
"meta": {
"title": "DailyWear - Kleidung für jeden Tag",
"description": ""
}
}
]
}Wenn Sie pageMetas ändern, läuft die Verarbeitung an, die diese Werte auf die tatsächlichen Dokumente anwendet. sys.state geht zurück auf PENDING und kommt dann wieder auf COMPLETED; dazwischen werden Änderungen und Löschungen abgelehnt.
Fehler
Dies sind die Codes, die beim Umgang mit einem Web Hosting auftreten. Codes, die allen Ressourcen gemeinsam sind, finden Sie unter Gemeinsame Fehler.
| Code | Bedingung |
|---|---|
WGL422031 | Der Aufrufer wollte ein Web Hosting ändern oder löschen, dessen Deployment-Dateien gerade verarbeitet werden. Versuchen Sie es erneut, nachdem die Verarbeitung abgeschlossen ist. |
WGL422113 | pageMetas wurde an ein Web Hosting gesendet, dessen Metadaten je Dokument nicht bearbeitet werden können. Entweder ist es nicht durch die Installation einer MarketApp entstanden, oder seine Dateien wurden seither durch einen Upload ersetzt. |
WGL500039 | Die Informationen der verbundenen benutzerdefinierten Domain konnten nicht aus dem Übertragungsnetz gelesen werden. |
WGL429001 | Der Aufrufer wollte eine benutzerdefinierte Domain neu mit einem Web Hosting verbinden, das bisher keine benutzerdefinierte Domain hatte, während die Anzahl der benutzerdefinierten Domains der Organization die Obergrenze des Tarifs bereits erreicht hatte. Das Ändern einer bereits vorhandenen Domain erhöht die Anzahl nicht und unterliegt dieser Prüfung daher nicht. |
API
Die Basis-URL aller folgenden Endpunkte ist https://cma.weegloo.com/v1, und im Header Authorization wird ein Bearer-Token zur Authentifizierung gegenüber der CMA benötigt. Für die Aktualisierung und Teilaktualisierung muss zur optimistischen Nebenläufigkeitskontrolle der Header X-Weegloo-Version (die sys.version der aktuellen Ressource) mitgesendet werden. Bei Erstellungs- und Löschanfragen entfällt dieser Header.
Verwandte Dokumente
- Upload API: Die Anfrage, mit der ein statisches Datei-ZIP hochgeladen und das Upload für die Erstellung eines Web Hosting abgerufen wird.
- Space: Der Space, zu dem das Web Hosting gehört.
