Примеры использования API

PHP

Для запросов используется библиотека cURL.

<?php

$login = '<LOGIN>';
$password = '<PASSWORD>';

$headers = [
    'Content-Type: application/json; charset=utf-8',
    'Accept: application/json'
];

// получение токена
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, "https://api.sweb.ru/notAuthorized/");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'jsonrpc' => '2.0',
    'method' => 'getToken',
    'params' => [
        'login' => $login,
        'password' => $password
        ]
]));
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
$token = $result['result'];

// пример вызова метода API с полученным токеном
if ($token) {
    $headers[] = "Authorization: Bearer $token";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_URL, "https://api.sweb.ru/domains/");
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
        'jsonrpc' => '2.0',
        'method' => 'move',
        'params' => [
            'domain' => 'mysite.ru',
            'prolongType' => 'no'
        ]
    ]));
    $result = json_decode(curl_exec($ch), true);
    curl_close($ch);
}

Python

Для запросов используется библиотека requests.

import requests
import json

# получение токена
data = {
    'jsonrpc':'2.0',
    'method':'getToken',
    'params':{
        'login':'<LOGIN>',
        'password':'<PASSWORD>'
    }
}
headers = {
    'Content-Type':'application/json; charset=utf-8',
    'Accept':'application/json'
}
response = requests.post("https://api.sweb.ru/notAuthorized/", json=data, headers=headers)
result = json.loads(response.text)

# пример вызова метода API с полученным токеном
if 'result' in result:

    headers['Authorization'] = 'Bearer ' + result.get('result')
    data = {
    'jsonrpc':'2.0',
    'method':'move',
    'params':{
            'domain':'mysite.ru',
            'prolongType':'no'
        }
    }
    response = requests.post("https://api.sweb.ru/domains/", json=data, headers=headers)

NodeJS

Для запросов используется библиотека https.

const https = require('https');

let login = '<LOGIN>';
let password = '<PASSWORD>';

// получение токена
let post_data = JSON.stringify({
    'jsonrpc':'2.0',
    'method':'getToken',
    'params':{
        'login': login,
        'password': password
    }
});

let post_options = {
    host: 'api.sweb.ru',
    port: 443,
    path: '/notAuthorized',
    method: 'POST',
    headers: {
        'Content-Type': 'application/json; charset=utf-8',
        'Accept': 'application/json'
    }
};
let req = https.request(post_options, (res) => {
    let data = '';
    res.on('data', (chunk) => {
        data += chunk;
    });

    res.on('end', () => {
        let result = JSON.parse(data);
        // вызов метода API после получения токена
        result.result && move(result.result)
    });
});
req.write(post_data);
req.end();

// пример вызова метода API с полученным токеном
const move = (token) => {
    let post_data = JSON.stringify({
        'jsonrpc':'2.0',
        'method':'move',
        'params':{
            'domain': 'mysite.ru',
            'prolongType': 'no'
        }
    });

    let post_options = {
        host: 'api.sweb.ru',
        port: 443,
        path: '/domains',
        method: 'POST',
        headers: {
            'Content-Type': 'application/json; charset=utf-8',
            'Accept': 'application/json',
            'Authorization': 'Bearer ' + token
        }
    };
    let req = https.request(post_options, (res) => {
        let data = '';
        res.on('data', (chunk) => {
            data += chunk;
        });

        res.on('end', () => {
            let result = JSON.parse(data);
        });
    });
    req.write(post_data);
    req.end();
}