Сервисы
September 24

API для управления серверами, IP и финансами

На прошлой неделе функционал платформы Mnogoweb пополнился обновлённым API для взаимодействия с платформой из внешних приложений.

Теперь с помощью нового API можно создавать серверы и управлять ими, заказывать IP-адреса к серверам и управлять их PTR-записями, создавать SSH-ключи, а также оплачивать услуги.

Как устроен API?

При создании нового API мы старались сделать его максимально простым и понятным. API построен на формате JSON и использует стандартную авторизацию через HTTP-заголовок Authorization, в котором передаётся API-ключ.

API-ключ можно получить в личном кабинете здесь.

Пример взаимодействия

Давайте рассмотрим несколько простых примеров.

Предположим, для некой задачи нужно получить список услуг. Для этого нужно сделать следующее:

1. Отправить GET-запрос на эндпоинт https://api.mnogoweb.com/v1/services

2. В заголовках передать API-ключ: Authorization: Bearer Q61PJ8R.......

В результате мы получим ответ со списоком услуг:

{
  "status": true,
  "response": {
    "count": 1,
    "services": [
      {
        "id": 1234,
        "type": 3,
        "tarif": 750,
        "status": 1,
        "domain": "domain.kz",
        "identifier": "account1",
        "order_date": "2020-12-01 10:00:00",
        "start_date": "2020-12-01 10:00:00",
        "to_date": "2020-12-01 10:00:00",
        "discount": 0,
        "monthly_price": 9000,
        "price_curr": "KZT",
        "parent_service_id": 0,
        "is_renewal_allowed": true,
        "is_auto_charge_allowed": true
      }
    ]
  }
}

Или другой пример: создадим новый сервер. Для этого нужно сделать следующее:

1. Отправить POST-запрос на эндпоинт https://api.mnogoweb.com/v1/servers

2. В заголовках передать API-ключ: Authorization: Bearer Q61PJ8R.......

3. В теле запроса передать JSON следующего вида:

{
  "type": "vps",
  "location": "hel",
  "cpu": 1,
  "ram": 2048,
  "disk": 10,
  "bandwidth": 250,
  "os": "almalinux9",
  "backups": "daily"
}

В результате мы получим ответ вида:

{
  "status": true,
  "response": {
    "message": "Order has been placed",
    "service_id": 12345,
    "invoice_id": 12345,
    "amount": 3900,
    "curr": "KZT",
    "is_paid": true
  }
}

Обратите внимание на значение параметра service_id, с его помощью затем можно будет получить информацию о созданном сервере и его ID для работы через другие методы.

Документация по API