Домены
Управление доменами проекта через REST API. Домены могут быть внутренними (внутренний IP) или внешними (пользовательский hostname). Все методы требуют токен аутентификации.
POST /v1/project/:projectId/domain
Создаёт в проекте новый домен. Без параметра host домен считается внутренним и получает внутренний IP-адрес, а с параметром host — внешним, привязанным к пользовательскому hostname. Имя домена должно содержать от 3 до 60 символов: латиницу в нижнем регистре, цифры, дефис и точку; при совпадении имени с уже существующим доменом возвращается ошибка конфликта. В ответе приходит созданный объект домена со статусом checking, флагом checked: false и назначенным полем ip.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
name |
string | Да | Имя домена (3–60 символов, латиница в нижнем регистре, цифры, дефис и точка) |
host |
string | Нет | Пользовательский hostname (external) |
Пример запроса:
{
"name": "my-domain",
"host": "example.com"
}
Ответ:
{
"id": "660e8400-e29b-41d4-a716-446655440010",
"name": "my-domain",
"host": "example.com",
"ip": "192.168.1.1",
"status": "checking",
"external": true,
"checked": false,
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Проект не найден409 Conflict— Домен с таким именем уже существует400 Bad Request— Невалидные параметры
GET /v1/domain/:domainId
Возвращает домен по его UUID в виде объекта DomainResponse. Ответ содержит имя, пользовательский hostname, IP-адрес, текущий статус (checking, ready или deleting), флаги external и checked, а также даты создания и обновления. По флагу checked и статусу можно отследить, завершилась ли проверка домена.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
domainId |
Path | UUID | Да | ID домена |
Ответ:
{
"id": "660e8400-e29b-41d4-a716-446655440010",
"name": "my-domain",
"host": "example.com",
"ip": "192.168.1.1",
"status": "ready",
"external": true,
"checked": true,
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Домен не найден
GET /v1/project/:projectId/domains
Возвращает все домены проекта — массив объектов DomainResponse. Каждый элемент содержит имя, пользовательский hostname, IP-адрес, статус (checking, ready или deleting), флаги external и checked, а также даты создания и обновления. В списке присутствуют как внутренние, так и внешние домены проекта.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Ответ:
[
{
"id": "660e8400-e29b-41d4-a716-446655440010",
"name": "my-domain",
"host": "example.com",
"ip": "192.168.1.1",
"status": "ready",
"external": true,
"checked": true,
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
]
Ошибки:
404 Not Found— Проект не найден
DELETE /v1/domain/:domainId
Удаляет домен по его UUID. Успешное удаление подтверждается пустым ответом без тела, объект домена не возвращается. При обращении к несуществующему домену возвращается ошибка «не найден».
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
domainId |
Path | UUID | Да | ID домена |
Ответ: 204 No Content — пустой ответ при успешном удалении.
Ошибки:
404 Not Found— Домен не найден