Enfernuz / quik-lua-rpc

RPC-сервис для вызова API Lua-библиотеки торгового терминала QUIK (ARQA Technologies)
Apache License 2.0
103 stars 43 forks source link

Явно пригодился бы json/schema generator #21

Closed euvgub closed 5 years ago

euvgub commented 5 years ago

Явно пригодился бы json/schema generator для args.json и для result.json, только найти бы удобный источник для распарсивания. Из proto файлов не очень, потому что в них нет "description". Не помешало бы в args.json иметь "description":"getFuturesLimit - Функция предназначена для получения информации по фьючерсным лимитам. Функция возвращает таблицу Lua с параметрами Лимиты по фьючерсам. В случае ошибки функция возвращает «nil»." Хотя, может быть description - это лишнее, и его можно посмотреть в справочнике Qlua. Вот это примерно оно? protobuf to json https://github.com/dpp-name/protobuf-json

Enfernuz commented 5 years ago

Насчёт генерилки JSON-схем (например, из .proto) -- да, с ней было бы неплохо, но я уже начал вручную, почти на полпути. К тому же, прохожусь ещё раз по всем местам, что помогает заметить баги. Один уже исправил -- в одном из объектов аргументов было неверное наименование свойства. description не стал писать именно по указанной Вами причине -- это лишь клиент к QLua, поэтому документацию по функциям нужно смотреть в руководстве пользователя, а nullability в JSON-схеме сообщается через "required". Какие-то специальные случаи, когда результат работы сервиса отличается от того, что заложено в QLua, я опишу в README, как только закончу писать JSON-схемы (скоро).

Что касается генерации JSON из protobuf encoded сообщений -- это однозначно сэкономило бы время разработки, но пришлось бы заплатить дополнительным рантайм оверхэдом перегонки данных в промежуточный формат protobuf. В принципе, это не такая уж большая потеря (всё равно на QUIK никто HFT в здравом уме не будет писать), и наверное, с этого надо было начать мне, когда я стал переделывать сервис для поддержки JSON, но хорошая мысля приходит апосля 😺