πŸ“‘ БистСмный API (ВрСбуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)

Π­Ρ‚ΠΎΡ‚ API прСдоставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ просмотр ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ запросу (VOD) ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ статистики, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

--- ## РасполоТСниС Ρ„Π°ΠΉΠ»ΠΎΠ² System API обрабатываСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ: ``` src/public/Controllers/Api/AdminApiController.php ``` HTTP entry-point: `/api.php` β†’ роутится nginx Π½Π° `public/index.php` с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ `XC_API=internal`. ## ΠžΠ±Π·ΠΎΡ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ API **Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ URI**: `http://:/api.php` **АутСнтификация**: `password` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ `live_streaming_pass` **ΠŸΡ€ΠΈΠΌΠ΅Ρ€**: `http://:/api.php?password=&action=` --- ## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ API ### 1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ VOD #### **GET** `/api.php?action=vod` **ОписаниС:** Запуск ΠΈΠ»ΠΈ остановка ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ запросу (VOD). **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ВрСбуСтся | ОписаниС | |------------|----------|----------|-------------| |stream_ids |массив Ρ†Π΅Π»Ρ‹Ρ… чисСл |yes |Бписок ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². | |function |string |yes |ДСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (`start` ΠΈΠ»ΠΈ `stop`)| --- ### 2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ трансляций #### **GET** `/api.php?action=stream` **ОписаниС:** Запуск ΠΈΠ»ΠΈ остановка прямых трансляций. **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ВрСбуСтся | ОписаниС | |------------|----------|----------|-------------| |stream_ids |массив Ρ†Π΅Π»Ρ‹Ρ… чисСл |yes |Бписок ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². | |function |string |yes |ДСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ (`start` ΠΈΠ»ΠΈ `stop`)| --- ### 3. ВСлСмСтрия систСмы #### **GET** `/api.php?action=stats` **ОписаниС:** ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ статистику. **ΠžΡ‚Π²Π΅Ρ‚:** ```json { "cpu": 8.32, "cpu_cores": 56, "cpu_avg": 8.86, "cpu_name": "Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz", ..., } ``` --- ### 4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° процСсса #### **GET** `/api.php?action=pidsAreRunning` **ОписаниС:** ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ процСссов (PID). | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ВрСбуСтся | ОписаниС | |------------|----------|----------|-------------| |pids |массив Ρ†Π΅Π»Ρ‹Ρ… чисСл | yes | Бписок PID для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. | |program |string |yes |Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. | --- ### 5. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° #### **GET** `/api.php?action=getFile` **ОписаниС:** Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ВрСбуСтся | ОписаниС | |------------|----------|----------|-------------| |filename |string |yes |ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.| **ΠžΡ‚Π²Π΅Ρ‚:** - Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π°. --- ### 6. Бписок содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° #### **GET** `/api.php?action=viewDir` **ОписаниС:** ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ВрСбуСтся | ОписаниС | |------------|----------|----------|-------------| |dir |string |yes |ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.| **ΠžΡ‚Π²Π΅Ρ‚:** ```html ``` --- ### 7. ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соСдинСния #### **GET** `/api.php?action=redirect_connection` **ОписаниС:** ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ соСдинСниС Π½Π° основС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° активности ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°. **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ | ОписаниС | |------------|----------|----------|-------------| |activity_id |Ρ†Π΅Π»ΠΎΠ΅ число |Π΄Π° |Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ активности. | |stream_id |Ρ†Π΅Π»ΠΎΠ΅ число |Π΄Π° |Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ°. | --- ### 8. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сигнал #### **GET** `/api.php?action=signal_send` **ОписаниС:** ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ сигнальноС сообщСниС для выполнСния дСйствия. **ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:** | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ | ОписаниС | |------------|----------|----------|-------------| |message |строка |Π΄Π° |ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹. | |activity_id |Ρ†Π΅Π»ΠΎΠ΅ число |Π΄Π° |Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ активности.| --- ### 9. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ #### **GET** `/api.php?action=free_temp` **ОписаниС:** УдаляСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ запускаСт скрипт для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. --- ### 10. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ трансляций #### **GET** `/api.php?action=free_streams` **ОписаниС:** ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². --- ### 11. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свободноС мСсто #### **GET** `/api.php?action=get_free_space` **ОписаниС:** Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ свободном дисковом пространствС. --- ### 12. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ PID #### **GET** `/api.php?action=get_pids` **ОписаниС:** Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… процСссов. --- ### 13. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСс ΠΏΠΎ PID #### **GET** `/api.php?action=kill_pid` **ОписаниС:** Π£Π±ΠΈΠ²Π°Π΅Ρ‚ процСсс ΠΏΠΎ PID. --- ## ΠšΠΎΠ΄Ρ‹ ошибок | Код | ОписаниС | |----------------------|-------------| | INVALID_API_PASSWORD | ΠŸΠ°Ρ€ΠΎΠ»ΡŒ API Π½Π΅Π²Π΅Ρ€Π΅Π½ | | API_IP_NOT_ALLOWED | IP-адрСс Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ | | INVALID_REQUEST | НСвСрныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса | --- ## ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ - ВсС запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ пароля API. - НСкоторыС дСйствия ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвСра.