сделал достаточную версию генератора кода для actix_swagger.
Генерирует такое:
https://github.com/sergeysova/actix-swagger/blob/master/cargo-swagg/out.rsВпринципе, этого достаточно, чтобы писать приложения, у меня примерно такое юзается. Но тут нет исполнения контракта обработчиков запросов. Нет обязания правильно обрабатывать request body в обработчике. Я не смог найти способ это сделать через actix_web::dev::Factory.
Вот issue обсуждения:
https://github.com/actix/actix-web/pull/1339По actix-swagger:
Сейчас буду писать конвертацию yaml структур, в формат генератора кода. Скорее всего там будет пачка HashMap/BTreeMap, чтобы корректно резолвить ссылки. Первая реализация будет очень тупая, и сможет работать только со ссылками в requestBody, responses, params и прочим. Также не будет поддержки импортов из файлов.
В чем нужна помощь:
- Поревьювить код. Там почти всё написано так, чтобы получить первую рабочую версию.
- Было бы круто накидать тесты на генератор кода(называется printer). Думаю банальных inline snapshots было бы достаточно. Дать на вход разные варианты конфигурации, и получить вменяемый код.
- Преобразовать свои личные openapi3 файлы спеки апи в структуры cargo-swagg и поглядеть достаточно ли того, что там есть или нужно что-то ещё. Если нужно ещё что-то, создать issue/pr с реализацией.