API и новый интерфейс управления VPS



2021 год начинаем сразу с двух приятных новостей для пользователей виртуальных серверов.

Для пользователей, желающих интегрировать наш сервис в свои системы и приложения мы разработали и запустили долгожданный API.
Пользователи, привыкшие управлять услугами через личный кабинет, получили улучшенный раздел управления VPS.

Впереди и другие улучшения, а пока предлагаем почитать более подробно об этих двух.

API для управления услугами
API — специальный интерфейс для программирования приложений, позволяющий с помощью выполнения запросов к нашему серверу API, например, организовать создание VPS и управление ими через свои скрипты и приложения.

API в данный момент позволяет:
  • Создавать виртуальные серверы
  • Получать информацию о виртуальных серверах
  • Перезагружать, переустанавливать, получать VNC-доступ
  • Получать информацию о балансе лицевого счёта, пополнять его
  • Просматривать выставленные счета и оплачивать их с баланса лицевого счёта и с банковских карт, привязанных к аккаунту
  • Просматривать банковские карты и привязывать новые
Документацию по API можно найти вот здесь. А пока рассмотрим пару примеров взаимодействия.

Например, Вы хотите получить баланс лицевого счёта аккаунта, для этого нужно выполнить GET запрос. Вот какой запрос нужно выполнить в консоли через утилиту CURL:
curl -X GET "https://api.x5x.ru/v1/account/balance" \
     -H "Content-Type:application/json" \
     -H "Authorization: Bearer API-KEY"


Чтобы сделать тоже самое через PHP-скрипт, можно использовать, например, такой код:
$url = 'https://api.x5x.ru/v1/account/balance';
$api_key = 'API-KEY';
$request_headers = [
             'Content-Type: application/json',
             'Authorization: Bearer '.$api_key
];
$ch = curl_init(); // Инициализация CURL
curl_setopt($ch, CURLOPT_URL, $url); // Установка URL запроса
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers); // Установка заголовков запроса
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Вернуть результат выполнения
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Следовать переадресациям
$result = curl_exec($ch); // Выполнение запроса
curl_close($ch); // Закрытие соединение
var_dump(json_decode($result, true)); // Вывод на экран результата


В результате запроса мы получим JSON-объект с данными, содержащими в себе статус ответа и баланс лицевого счёта аккаунта. Например:
{
	"status": 1,
	"balance": "2.37",
	"balance_curr": "RUR",
	"bonus_balance": "12.10",
	"bonus_balance_curr": "RUR"
}


В примере баланс лицевого счёта равен 2.37 рублям, а на бонусном балансе — 12.10 рублей.

Вот так, с помощью простых запросов, теперь можно получать данные о своём аккаунте, создавать заказы и управлять услугами.

В ближайшее время добавим управление хостингом, выделенными серверами, а также доменами.

Обновлённое управление VPS
Помимо новых возможностей для любителей управлять всем из своих приложений, мы переработали и интерфейс управления VPS в браузере.


Теперь на главной странице интерфейса отображается информация о выделенных ресурсах: ядра CPU, объём оперативной памяти и диска, а также стоимость VPS включая все доп. услуги, чтобы сразу было понять, сколько нужно заплатить за продление.

Кроме того, меню с функциями управления переехало влево, а сверху теперь отображается главный IP-адрес VPS, его локация, а также кнопки для открытия VNC-консоли и перезагрузки VPS.

x5x.ru/vps-kvm.html

Пишем документацию API при помощи RAML



Удобство работы с любым API во многом зависит от того, как написана и оформлена его документация. Cейчас мы ведём работу по стандартизации и унификации описания всех наших API, и вопросы документирования для нас особенно актуальны.
После долгих поисков мы решили оформлять документацию в формате RAML. Так называется специализированный язык для описания REST API. О его возможностях и преимуществах мы расскажем в этой статье.
blog.selectel.ru/opisyvaem-dokumentaciyu-api-pri-pomoshhi-raml/

Управление доменами с Selectel DNS API



Сегодня мы представляем вам тестовую версию нашего DNS API для автоматизации работы с доменами и обновления информации о них на наших NS-серверах.

Возможности API
В настоящее время с помощью API можно осуществлять следующие операции:
  • добавление, изменение и удаление доменов;
  • добавление и редактирование ресурсных записей SRV, MX, CNAME, TXT, A, AAAA, NS, SPF (этот тип записей оставлен для совместимости, но к использованию не рекомендуется — см. RFC 7208) PTR (запись SOA создаётся автоматически при добавлении домена, значения MINIMUM и EXPIRE будет равны 86400 и 604800 соответственно);
  • добавление и редактирование обратных записей для IP-адресов;
  • пометка доменов тэгами.

blog.selectel.ru/upravlenie-domenami-s-selectel-dns-api/

Check out Scaleway Bootscript



Scaleway Bootscript: Simple Kernel Management for your C1 server
Bootscripts let you choose the kernel version your C1 server uses (but – teasing time – also the boot and initrd arguments, though this is not yet really useful).
A dozen of bootscripts are currently available. You can list them from your control panel and checkout the sources from our GitHub repository.

Images bootscripts
When you create a server on Scaleway, you need to select an image. It can be a distribution (Ubuntu, Fedora, ...), an image from the ImageHub (Wordpress, Torrents, ...), or your own (handcrafted!) image.

Each image has a default bootscript. For instance, the current Ubuntu image is associated with the bootscript 3.2.34-std #30 (stable), with, as you probably guessed, a Linux kernel version 3.2.34.

You can display and change the bootscript used by your image directly from the control panel:
  • Click on Images in the left side menu
  • Select the image you want to show or edit the bootscript
  • Click SHOW in the advanced options section to display the bootscript menu


This way, everytime you boot a server using this image, it will use by default the bootscript you just set.

Another way to view the bootscript used by an image is to use our API:
request
curl -H "X-Auth-Token: <TOKEN ID>" https://api.scaleway.com/images/<IMAGE ID>

response
{
    "image": {
        "arch": "arm",
        "creation_date": "2015-02-24T17:15:37.506593+00:00",
        "default_bootscript": {
            "bootcmdargs": {
                "id": "3aeefc8a-3732-41b0-acb5-7a8a8cd855ef",
                "value": "ip=dhcp boot=local root=/dev/nbd0 nbd.max_parts=8 cgroup_enable=memory swapaccount=1"
            },
            "id": "40b71c91-3dd3-41ad-aa1a-5624fb21b7ee",
            "initrd": {
                "id": "1be14b1b-e24c-48e5-b0b6-7ba452e42b92",
                "path": "initrd/c1-uInitrd",
                "title": "C1 initrd"
            },
            "kernel": {
                "dtb": "dtb/pimouss-computing.dtb.3.18.13-214-std",
                "id": "4e650465-c0eb-4e59-a59a-b43478f8ff2b",
                "path": "kernel/pimouss-uImage-3.18.13-214-std",
                "title": "Pimouss 3.18.13-214-std"
            },
            "organization": "...",
            "public": true,
            "title": "3.18.13-std #214 (LTS)"
        },
        ...
    }
}


Читать дальше →

API v2 is now out of beta



We are very pleased to announce that API v2 is coming out of beta, nine months after its initial release. With this release we wanted to introduce new features not available in v1, while maintaining the level of simplicity developers loved in our first version. To help us keep it simple and stomp out bugs, we called on the community to collaborate with us in a public GitHub repository. The last nine months of collaboration with the community ensured our API remained awesome as we added these new features.

Our previous API was simple and easy to use. However, it lacked features allowing developers to interact with DigitalOcean in more advanced ways. We knew we wanted to include new features like:
  • OAuth
  • Pagination
  • A (more) RESTful interface
We wanted to add all of these features in v2, but were wary of increasing the complexity for our community. So, our first tactic was to introduce only new features the community was actually requesting. This involved taking internal and customer feedback even before launching in beta through UserVoice, internal dogfooding, and support tickets. Then during the beta, we received a constant stream of new feedback via the public GitHub repo.

Close collaboration with the community allowed us to fix several bugs as well as add a couple of very useful features. We received a high amount of feedback about the images endpoint, for example — specifically around filtering and maintaining an acceptable level of response time. Many of our users have a large number of snapshots and backups, so the ability to request different types of images via this endpoint proved very useful. Some other features which made it in thanks to community feedback include:
  • Increasing the base rate limit
  • Adding more information to the user endpoint
  • Clarifying the API documentation
  • Adding stronger validations to the Droplet creation process

Our second tactic was to keep the API as consistent as possible to reduce the cognitive load on the developer. As an example, we made sure all region objects in JSON responses follow the same format.

The final tactic was to beef up our API docs by launching our new developer portal. The new portal provides clear documentation, links to community tutorials to get started, and a centralized repository of API libraries.
We would like to thank everyone who helped report bugs and suggest features during the beta period. Thanks to you, API v2 is finally launched! Try it out here.