Python & Redis - Flask API, который устанавливает / считывает значения из проблемы Redis - PullRequest
1 голос
/ 09 апреля 2020

Ситуация следующая: у меня есть веб-сервер Flask, и мне нужно разработать для него новую конечную точку API (POST / GET), которая обновляла бы / считывала состояние сервера.

Мой POST API требует ввода, подобного этому:

{
    "name": <name_of_the_server>,
    "serverUrl" <url_of_the_server>,
    "available": true/false
}

Я хочу сохранить эту информацию в Redis на неделю. Я сохраняю все JSON из запроса API как значение словаря в Redis. Я сваливаю и загружаю это с рассолом. Ключ - это параметр "name".

У меня также есть конечная точка GET API, в которой я могу указать имя сервера и получить информацию о его состоянии. Следовательно, Python проверяет в Redis ключ, содержащий имя сервера (предоставленное пользователем через API), и возвращает значение (словарь со всей ранее сохраненной информацией).

Это все хорошо, и работает как задумано. Однако через GET API я также смогу искать состояние сервера по URL-адресу сервера (а также по имени сервера).

Пока что мое решение выглядит следующим образом:

// Redis is a class, I previously instantiated
redis.set(server_name, server_data, ex=time_to_live)
redis.set(server_url, server_data, ex=time_to_live)

Я установил два ключа, содержащие точно такую ​​же информацию. Через конечную точку GET это дает мне возможность проверить состояние сервера, используя либо имя сервера, либо URL-адрес сервера, поскольку они возвращают одно и то же значение. Кроме того, они имеют одну и ту же дату истечения срока действия и всегда обновляются вместе.

Это работает, однако я считаю, что это скорее "читерское" решение, поэтому я хотел бы попросить совета, если мне следует сохранить это так, или если есть лучший способ достичь той же функциональности. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...