Web Hosting
Última atualização: 22 de junho de 2026
Web Hosting é o recurso que coloca um site estático que você compilou em um Space e o serve no endereço {subdomain}.weegloo.app. Tomando uma loja de roupas como exemplo, exibir o site da loja compilada em dailywear-shop.weegloo.app é um único Web Hosting.
A ordem para publicá-lo é a seguinte. Primeiro, empacote o resultado da compilação em ZIP ou tar.gz, envie-o pela Upload API e receba um Upload. Referenciando esse Upload, crie um Web Hosting com POST /web-hostings. Quando o sistema processa os arquivos enviados e sys.state se torna COMPLETED, o site fica acessível por url. Na CMA, Web Hosting é um recurso filho de Space, e seu caminho tem como base /spaces/{spaceId}/web-hostings.
Estrutura do recurso
Abaixo está a resposta de consulta única de um Web Hosting já processado, "Site da loja DailyWear". Junto com sys (propriedades do sistema), ele possui propriedades de corpo (name, description, isSpa, subdomain, url).
{
"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,
"version": 3
},
"name": "Site da loja DailyWear",
"description": "Site estático da loja de roupas e acessórios",
"isSpa": true,
"subdomain": "dailywear-shop",
"url": "https://dailywear-shop.weegloo.app"
}Chaves principais:
subdomain: o subdomínio no qual o site será servido. O exemplo acima édailywear-shop, e o endereço final édailywear-shop.weegloo.app.url: o endereço do site, acessível após a conclusão do processamento.isSpa: indica se é um aplicativo de página única (SPA). Setrue, todas as requisições de caminho são direcionadas paraindex.html.state: o estado do processamento de implantação dos arquivos enviados. Explicado abaixo em Propriedades do sistema (sys).
Propriedades do sistema (sys)
Todo Web Hosting armazena as propriedades de sistema comuns no objeto sys. space, createdBy e updatedBy entram no formato Refer ({ "sys": { "id", "type": "Refer", "targetType" } }).
| Propriedade | Tipo | Descrição |
|---|---|---|
id | string | Identificador único do recurso. Entra em {webHostingId} dos caminhos de consulta única, modificação e exclusão. |
type | string | Tipo do recurso. Para Web Hosting é sempre "WebHosting". |
space | Refer<Space> | O Space ao qual este Web Hosting pertence. |
createdBy | Refer<User> | Usuário que criou o recurso. |
createdAt | string (date-time) | Momento da criação. |
updatedBy | Refer<User> | Usuário que modificou o recurso por último. |
updatedAt | string (date-time) | Momento da última modificação. |
state | string (enum) | Estado do processamento de implantação. Um dos 4 valores abaixo. |
error | string | Motivo, quando o processamento falha. Fica vazio quando não há falha. |
totalFileSize | integer | Tamanho total dos arquivos enviados (em bytes). |
version | integer (≥1) | Versão do recurso. Aumenta de 1 em 1 a cada criação e modificação. É o valor que deve ser enviado em x-weegloo-version nas requisições de modificação e modificação parcial. |
state indica a etapa de processamento que implanta os arquivos enviados. Não é o estado de publicação de Content, e Web Hosting não tem o conceito de publicação ou arquivamento. Quando os arquivos são processados e o estado se torna COMPLETED, o site fica acessível por url.
state | Significado |
|---|---|
PENDING | Aguardando processamento. |
PROCESSING | Em processamento. |
COMPLETED | Processamento concluído. Acessível por url. |
FAILED | Falha no processamento. O motivo é registrado em sys.error. |
Propriedades de corpo
As propriedades de corpo de Web Hosting são as seguintes.
| Propriedade | Tipo | Descrição |
|---|---|---|
name | string (1~64) | Nome do Web Hosting. Obrigatório na criação. |
description | string (≤128) | Descrição. Opcional. |
isSpa | boolean | Indica se é um aplicativo de página única. Se true, todas as requisições de caminho são direcionadas para index.html (para roteamento de SPA). Obrigatório na criação. |
subdomain | string (3~32) | Subdomínio de serviço. Padrão ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ (letras minúsculas, dígitos, hífen; o início e o fim não podem ser hífen). Obrigatório na criação. |
upload | Refer<Upload> | Referência que aponta para os arquivos a enviar. É um ZIP ou tar.gz, deve ter index.html na raiz e os ativos devem ser referenciados por caminhos relativos. |
url | string | URL de acesso após a conclusão do processamento. Preenchida pelo sistema. |
fromPath | string | Caminho base da implantação. |
customDomain | string | Domínio personalizado conectado. Opcional. Explicado abaixo em Domínio personalizado. |
Verificação de subdomínio
Antes de criar um Web Hosting, você pode verificar se o subdomínio que pretende usar está livre. Basta passar o subdomínio a verificar na query subdomain em GET /web-hostings/availability?subdomain=....
A resposta tem o formato a seguir; se available for true, esse subdomínio está disponível para uso.
{ "subdomain": "dailywear-shop", "available": true }Domínio personalizado
Em vez do endereço padrão {subdomain}.weegloo.app, você pode conectar ao Web Hosting um domínio próprio que você possua. O estado do domínio conectado é representado pelo objeto customDomain, no formato { id, domain, dns, cert }. dns e cert são, respectivamente, o estado da verificação de propriedade do domínio (DNS) e da emissão do certificado (cert), ambos no formato { status, txtName, txtContent }. txtName e txtContent são o nome e o valor do registro DNS TXT que deve ser cadastrado no lado do domínio.
{
"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"
}
}Depois de cadastrar o registro TXT no lado do domínio, dispare a verificação com PUT /web-hostings/{webHostingId}/custom-domain/status/verify e consulte o estado atual com GET /web-hostings/{webHostingId}/custom-domain/status. Quando a verificação termina, dns.status e cert.status tornam-se VERIFIED. Se você chamar a consulta de estado em um Web Hosting sem domínio personalizado conectado, a resposta é WGL404001.
API
A URL base de todos os endpoints abaixo é https://cma.weegloo.com/v1, e é necessário um token Bearer que autentique na CMA no cabeçalho Authorization. As operações de modificação e modificação parcial devem enviar também o cabeçalho X-Weegloo-Version (o sys.version do recurso atual) para o controle de concorrência otimista. As requisições de criação e exclusão não têm esse cabeçalho.
Documentos relacionados
- Upload API: a requisição para enviar o ZIP de arquivos estáticos e receber o Upload usado na criação de Web Hosting.
- Space: o Space ao qual o Web Hosting pertence.
