19.06.2020

Метки: , ,

Автор: Misterzym

1 Star2 Stars3 Stars4 Stars5 Stars
Загрузка...

API хранения данных — Data Easy Cloud

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

Начал создавать различные UserJS скрипты, которым требуется хранение различных данных. Но где их хранить? Это не критичные данные, требующие безумной защиты, но и не хочется добавлять в скрипты всякие ftp авторизации, перегружая его излишне. Поиск не дал результатов с готовыми системами (ладно уж бесплатными… да же платные отсутствуют). В результате решил написать свой небольшой сервис, API открыто для всех желающих.

Какой чек-лист был для начала:

  1. Работа по https, что бы не ругались браузеры на нарушение защиты
  2. Разграничение приложений, что бы их клиентские данные не пересекались
  3. Возможность создавать клиентов из самого приложения
  4. Возможность самому указать идентификатор клиента, если есть необходимость
  5. Передавать данные без декодирования в url_encode

Посмотрим что вышло в итоге, методов не много, чисто по делу:

  1. Регистрация приложения, выдаст ключ приложения, используется 1 раз при разработке приложения, записывается в код.
  2. Регистрация конкретного клиента. Можно самостоятельно сгенерировать ID клиента (например в userJS для вк, можно отталкиваться от id страницы пользователя, и хранить уникальные настройки для каждого аккаунта вк, а не для ПК). Или можно получить случайный ключ клиента.
  3. Запись данных пользователя
  4. Чтение данных пользователя

Всего 4 простых метода, один из которых делается еще до выхода приложения в свет, что бы забить в код приложения его ключ.

На всех запросах проверяются ключи приложения и идентификатор пользователя. В случае несовпадений, выдаются соответствующие ошибки:

Таким образом, логика работы приложений довольно простая (подойдет не только userJS, любые приложения с синхронизацией на разных пк одного пользователя). Разработчик регистрирует приложение и записывает в коде ключ приложения. При первом запуске приложение у пользователя регистрирует и запоминает его идентификатор, либо генерирует по какому либо другому внешнему параметру. В дальнейшем по этому идентификатору синхронизирует данные пользвателя на разных пк, получая и записывая данные.

Все данные хранятся в сжатом виде, с помощью gzip. Если у вас есть желание сразу обмениваться данными с сервером в сжатом формате, что бы экономить трафик, то к запросу получения и отправки данных надо добавить /gzip/ в конец адреса.

На этой ноте думаю закончу. Не знаю пока, будет ли развиваться дальше это API, потому что на данный момент не вижу пока необходимого функционала нового. Если у вас будут идеи дальнейшей разработки, пишите.

  • Комментарии VK