Pull to refresh

Панель настроек без программирования

Reading time2 min
Views2.2K
Привет,

Это небольшой сервис, призванный решить проблему конфигурации чего угодно. Если точнее, конфигурации чего-либо подключённого к интернету, которую можно представить в виде достаточно ветвистого объекта, доставляемого в виде JSON.

Проблема


Программам нужно хранить и использовать разновидность данных, известные как «настройки», или «конфигурация». Что это за данные?

  • они не очень хорошо структурированы
  • их не очень много, часто не более сотни значений
  • их нужно давать редактировать («админский интерфейс»)
  • приложение должно быть в курсе изменений.


Что мы можем для этого придумать, и почему оно не годится?


  • Реляционная база. Табличная структура малопригодна для россыпи несвязанных данных. Интерфейс отсутствует.
  • Хранить установки вместе с кодом. Структура может быть любая, но интерфейсом пользователя будет разговор с разработчиком.
  • Хранить установки в текстовом файле. Разновидность предыдущего подхода. Попробуйте научите нормального человека редактировать YAML.
  • Воспользоваться сторонним сервисом, вроде Google Data API. Будет работать, но оверхед будет ужасен, а скорость черепашья.


Собственно, сервис.
image


Несложная логика работы:

Регистрируемся, выбираем свободное имя для схемы (это называется «seed»). Имена общие для всех, так как они будут поддоменами. Наполняем схему содержимым в конструкторе форм:

image

Для каждого значения выбираем тип, имя поля, и то, что будет на экране в форме редактирования.

Автоматически получаем одну ипостась (instance) этой схемы (каждая ипостась это «tree») под названием main. Можно сделать несколько, например, для тестов или среды разработки. Назначаем пароль для каждого дерева.

Данные каждой ипостаси доступны человеку, для редактирования, по адресу https://<имя схемы>.config.ly
  • логин: имя ипостаси («main», если вы ничего не меняли)
  • пароль: тот, который вы задали в конфигурации.


Так как создавать свою схему вам лень (мне бы было), а интерфейс посмотреть хочется, можно зайти на готовое:

Данные также доступны на чтение бездушному боту через HTTPS GET api.config.ly с Basic Authentication:
  • юзернейм: имя схемы
  • пароль: API key, который был сгенерирован для дерева, и который можно посмотреть при редактировании схемы.


И опять же, можно сразу попробовать:

curl -k -u primer:yV7mkhNRs00tM2nTdKuEWV2a api.config.ly

Итого


Что же у нас получилось? Просто хранилище JSON объектов, к которому приделан минимальный удобный интерфейс редактирования. Возможно, это избавит вас от написания очередной админской панели.

Отзывы и конструктивная критика с благодарностью принимаются.
Only registered users can participate in poll. Log in, please.
Каково первое впечатление?
4.85% Джва года ждал такой сервис!15
19.42% Любопытно, может пригодиться.20
35.92% Я не доверяю свои данные абы кому.37
2.91% Нужно больше функционала: API на запись, пользовательские стили и пр. (в комментариях)3
0.97% Центр управления НЛО требует интерфейс к базе данных!1
35.92% Реально, какая-то фигня.37
103 users voted. 44 users abstained.
Tags:
Hubs:
Total votes 11: ↑6 and ↓5+1
Comments5

Articles