Работа с HTTP/JSON API

На данный момент API предоставляет один эндпоинт:
POST /api/execute-command/ — для отправки и выполнения команды на устройстве.

Ниже вы найдёте готовые примеры вызова этого метода на популярных языках и инструментах.

🔑 API-ключ требуется для авторизации.
Вы можете создать или управлять своими ключами на странице:
👉 https://microcomm.ru/api/keys/

🐍 Python (с использованием requests)

import requests

# Укажите здесь ваш API-ключ
api_key = "ваш_api_ключ"

# Передаем API-ключ в заголовке
headers = {
    "Authorization": f"Bearer {api_key}",
}

# Отправка POST-запроса
response = requests.post(
    "https://microcomm.ru/api/execute-command/",
    json={
        "device_uuid": "uuid_вашего_устройства",
        "command_name": "EXAMPLE",
        "command_params": {}
    },
    headers=headers
)

# Обработка ответа
print("=== Ответ ===")
if response.status_code == 200:
    print("Команда выполнена успешно")
    print(f"Данные: {response.json()}")
else:
    print("Ошибка выполнения команды")
    print(f"Текст ошибки: {response.json().get('error', 'Неизвестная ошибка')}")

Установка: pip install requests


🌐 cURL (терминал)

curl -X POST "https://microcomm.ru/api/execute-command/" \
  -H "Authorization: Bearer ваш_api_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "device_uuid": "uuid_вашего_устройства",
    "command_name": "EXAMPLE",
    "command_params": {}
  }'

Просто скопируйте в терминал (Linux/macOS) или Git Bash (Windows).


🟦 C# (.NET, с использованием HttpClient)

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static async Task Main()
    {
        var apiKey = "ваш_api_ключ";
        var url = "https://microcomm.ru/api/execute-command/";

        var payload = new
        {
            device_uuid = "uuid_вашего_устройства",
            command_name = "EXAMPLE",
            command_params = new { }
        };

        using var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = 
            new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", apiKey);

        var json = JsonConvert.SerializeObject(payload);
        var content = new StringContent(json, Encoding.UTF8, "application/json");

        var response = await client.PostAsync(url, content);

        Console.WriteLine("=== Ответ ===");
        if (response.IsSuccessStatusCode)
        {
            var result = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Команда выполнена успешно");
            Console.WriteLine($"Данные: {result}");
        }
        else
        {
            var error = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Ошибка выполнения команды");
            Console.WriteLine($"Текст ошибки: {error}");
        }
    }
}

Установка зависимостей (через NuGet):
bash dotnet add package Newtonsoft.Json


🐘 PHP (с использованием cURL)

<?php

$apiKey = 'ваш_api_ключ';
$url = 'https://microcomm.ru/api/execute-command/';

$data = [
    'device_uuid' => 'uuid_вашего_устройства',
    'command_name' => 'EXAMPLE',
    'command_params' => (object)[]
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "=== Ответ ===\n";
if ($httpCode === 200) {
    echo "Команда выполнена успешно\n";
    echo "Данные: " . $response . "\n";
} else {
    $error = json_decode($response, true);
    echo "Ошибка выполнения команды\n";
    echo "Текст ошибки: " . ($error['error'] ?? 'Неизвестная ошибка') . "\n";
}

Требуется включенный модуль cURL в PHP (обычно включен по умолчанию).


💡 Совет: Замените "ваш_api_ключ" на реальный ключ перед запуском.
Замените uuid_вашего_устройства на uuid вашего устройства из личного кабинета.
Все примеры отправляют один и тот же запрос и обрабатывают успешный/ошибочный ответ.