Skip to content

Web-framework на основе кодогенерации Go

Notifications You must be signed in to change notification settings

vlad1028/web-codegen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang Code Generation Web Framework

Этот проект представляет собой небольшой фреймворк на 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 — пример использования сгенерированного кода.

About

Web-framework на основе кодогенерации Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published