Как получать данные от API и показывать их в Web?

Уважаемые пользователи, здравствуйте!

Возникла необходимость в реализации некоторой программы, которой нет в интернете.
Поподробнее:

Есть сервер игры, на котором хочется отслеживать онлайн. Например, вот: https://minecraft-statistic.net/ru/server/mcmwc/st...
Онлайн этого сервера обновляется каждые 10 минут, ибо так решил администратор ресурса.

Скажите, можно ли реализовать посредством получения значения api и других манипуляций вывод подобного на свою страницу и, если да, то как.

Например:
мы получаем значение онлайна сервера по api с сайта https://mcapi.ca/query/play.minesuperior.com/info , где play.minesuperior.com - ip сервера.
в формате json нам нужна только одна строка:
{
    "status": true,
    "hostname": "play.minesuperior.com",
    "port": 25565,
    "ping": 60,
    "version": "1.9",
    "protocol": 4,
    "players": {
        "online": 27,
        "max": 1250
    },

а именно online
дальше необходимо обращаться к этому же api каждую минуту, а значения online выводить в график на странице по типу того, что есть https://minecraft-statistic.net/ru/server/mcmwc/st...

Есть мысли, как можно это реализовать?
Посредством python можно обращаться к api и получать значения online, а дальше их, например, записывать в файл или в базу данных, а php будет забирать каждую минуту значения из БД и показывать их на сайт
но тогда встает вопрос: а будет ли динамичное обновление страницы и не надо ли ее будет перезагружать каждый раз?

Если нет, то может посредством php без python? но если в первом я смогу это сделать, то с php могут возникнуть большие проблемы: я не представляю, как это реализовать

Если есть какие-либо идеи, предложения или вопросы по тому, что я написал - пишите, всем отвечу!
Заранее спасибо!
  • Вопрос задан
  • 10737 просмотров
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
cron - чтобы запускать раз в минуту
curl - чтобы получить статистику.
json_decode - преобразовать json в массив.

В простейшем случае
$json = file_get_contents('https://mcapi.ca/query/play.minesuperior.com/info');
$data = json_decode($json);
$online = $data[0]['players']['online'];

echo $online;
// или запись в файл
file_put_contents('/path/to/my/file.txt', $online);
Ответ написан
boratsagdiev
@boratsagdiev
Все ваши проблемы решит Javascript и XMLHttpRequest / fetch / другая библиотека для запросов.

Через setInterval делаете каждую минуту запрос к API и выводите полученное значение в нужном месте. И динамическое обновление будет и не надо пинать php или python :)
Ответ написан
Fzero0
@Fzero0
Вечный студент
могу предложить еще такой вариант:
1) Создаем Google Sheets таблицу
2) Инструменты редактор скриптов добавляем код
function getData() {
  const url = 'https://mcapi.ca/query/play.minesuperior.com/info';
  const response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
  var params = JSON.parse(response.getContentText());  
  var d = new Date();
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var n =sheet.getRange("A1").getValue()+2;
      sheet.getRange("A"+n).setValue(d);
      sheet.getRange("B"+n).setValue(params.players.online);
      sheet.getRange("A1").setValue(n-1);
}

3) Теперь нужно добавить триггер
6c0d6a002580441d9209776e5eb81d7c.png
4) Ну таблица заполняется строим график =>
ec341852110e4f56a8520b83ea963918.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы