Этот проект представляет собой небольшой фреймворк на Go для автоматической генерации HTTP-хендлеров на основе кодогенерации. Он позволяет упростить создание веб-интерфейсов с валидацией параметров, проверкой авторизации и обработкой ошибок, основываясь на структуре и методах Go.
Программа автоматически генерирует код для методов структур, которые помечены специальными метками. Сгенерированные хендлеры включают:
- Обертки для HTTP-запросов.
- Проверку методов (GET/POST).
- Проверку авторизации.
- Валидацию параметров.
- Заполнение структуры параметрами метода.
- Обработку ошибок.
Основной принцип заключается в том, что программа читает Go-файл с описанием структур и методов, а затем генерирует для них необходимый код для обработки HTTP-запросов, используя предоставленные аннотации.
Кодогенератор использует встроенные инструменты Go для анализа исходного кода (AST) и автоматически создает обертки для методов, которые обрабатывают параметры запроса, выполняют валидацию и авторизацию, а также возвращают результаты в формате JSON.
Пример запуска кодогенератора:
go build handlers_gen/* && ./codegen api.go api_handlers.go
Программа возьмет файл api.go
, проанализирует его и сгенерирует код для хендлеров, который будет записан в файл api_handlers.go
.
handlers_gen/codegen.go
— основная логика кодогенерации.api.go
— пример файла с методами и структурами, для которых генерируется код.api_handlers.go
— результат работы программы, содержащий сгенерированные HTTP-хендлеры.main.go
— пример использования сгенерированного кода.