Сервисы
Управление сетевыми сервисами через REST API. Сервисы группируют контейнеры и объявляют порты, на которые затем указывают маршруты и порты проекта. Все методы требуют токен аутентификации.
POST /v1/project/:projectId/service
Создаёт в указанном проекте сетевой сервис, группирующий контейнеры и объявляющий порты, на которые затем указывают маршруты и порты проекта. В теле запроса передаются массив containerIds, имя сервиса и массив ports (например, 8080 или 8080/tcp). В ответе возвращается объект ServiceResponse: новый сервис создаётся со статусом creating и типом user.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Body:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
containerIds |
string[] | Да | Массив ID контейнеров |
name |
string | Да | Имя сервиса (латиница в нижнем регистре, цифры и дефис; не числовое) |
ports |
string[] | Да | Массив портов (8080 или 8080/tcp) |
Пример запроса:
{
"containerIds": ["cc0e8400-e29b-41d4-a716-446655440007"],
"name": "web-service",
"ports": ["8080/tcp", "8443/tcp"]
}
Ответ:
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["8080/TCP", "8443/TCP"],
"status": "creating",
"type": "user",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Проект не найден400 Bad Request— Невалидные параметры
PUT /v1/service/:serviceId
Обновляет сервис по его UUID. Изменяет состав контейнеров (containerIds) и набор объявленных портов (ports), как в примере запроса. Возвращает обновлённый объект ServiceResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
serviceId |
Path | UUID | Да | ID сервиса |
Пример запроса:
{
"containerIds": ["cc0e8400-e29b-41d4-a716-446655440007"],
"ports": ["9000/tcp"]
}
Ответ:
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["9000/TCP"],
"status": "ready",
"type": "user",
"ip": "192.168.1.10",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Сервис не найден
GET /v1/service/:serviceId
Возвращает один сервис по его UUID. Ответ — объект ServiceResponse, включающий имя, массив портов, статус, тип (user или system), IP-адрес и даты создания и обновления.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
serviceId |
Path | UUID | Да | ID сервиса |
Ответ:
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["8080/TCP", "8443/TCP"],
"status": "ready",
"type": "user",
"ip": "192.168.1.10",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Сервис не найден
GET /v1/project/:projectId/services
Возвращает все сервисы, созданные в указанном проекте. Ответ содержит массив объектов ServiceResponse с тем же набором полей, что и при получении одного сервиса.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
projectId |
Path | UUID | Да | ID проекта |
Ответ:
[
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["8080/TCP", "8443/TCP"],
"status": "ready",
"type": "user",
"ip": "192.168.1.10",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
]
Ошибки:
404 Not Found— Проект не найден
GET /v1/container/:containerId/services
Возвращает все сервисы, в группировку которых входит указанный контейнер. Ответ содержит массив объектов ServiceResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
containerId |
Path | UUID | Да | ID контейнера |
Ответ:
[
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["8080/TCP", "8443/TCP"],
"status": "ready",
"type": "user",
"ip": "192.168.1.10",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
]
Ошибки:
404 Not Found— Контейнер не найден
POST /v1/service/:serviceId/reload
Перезагружает конфигурацию сервиса, повторно применяя текущие настройки. Возвращает объект ServiceResponse.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
serviceId |
Path | UUID | Да | ID сервиса |
Ответ:
{
"id": "880e8400-e29b-41d4-a716-446655440003",
"name": "web-service",
"ports": ["8080/TCP", "8443/TCP"],
"status": "ready",
"type": "user",
"ip": "192.168.1.10",
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-15T10:30:00+00:00"
}
Ошибки:
404 Not Found— Сервис не найден
DELETE /v1/service/:serviceId
Удаляет сервис по его UUID. При успешном удалении метод возвращает пустой ответ без тела.
Параметры:
| Параметр | Место | Тип | Обязательный | Описание |
|---|---|---|---|---|
serviceId |
Path | UUID | Да | ID сервиса |
Ответ: 204 No Content — пустой ответ при успешном удалении.
Ошибки:
404 Not Found— Сервис не найден