Последние пару месяцев я был занят своим desktop app.
От того и научился как его поднимать, где хранить данные, каким образом их хранить, как собирать это приложение под разные платформы и все такое.
Заноза была следующая.
Я был разочарован BloomRPC, как он выглядит и его переход в статус deprecated.
Потому захотел залепить свой.
Но не просто очередную копию, а с одним отличием которое тянет за собой большие изменения.
Запросы у меня описываются на с JSON как у всех принято.
А с помощью JS обьекта.
Ведь валидный JSON это уже валидный JS, но, увы, не наоборот.
Что это ломает?
Во-первых я могу описывать проще такие поля как protobuf.Timestamp используя Date инстанс, а Enum я могу определить строкой по имени поля или числом, как мне захочется.
Во-вторых, это возможность затащить реальный скриптинг сценариев для моего api.
И второе для меня самое важное и интересное.
Работая над сложным api с длинными user flow и большим количеством промежуточных состояний мне и захотелось определить это в одном кейсе, а не кликать по разным методам в клиенте.
Интеграционные тесты не всегда могут решить этот вопрос. В моем случае это апи работало с банковскими данными и требовало смс код для авторизации в моем банке, не те данные которые я вообще могу положить в фикстуры.
Если кого-либо заинтересовало и есть желание испытать - это лежит здесь
http://kalisto.app