Я работаю над простым Go REST API, используя Mux. Большинство руководств, которые я нашел, предлагали создать маршрутизатор следующим образом:
- Файл
routes.go
, содержащий глобальный массив всех маршрутов и всех обработчиков маршрутов. - Файл
router.go
, который создает объект маршрутизатора, перебирает глобальный массив и регистрирует все на маршрутизаторе.
Я бы предпочел использовать другую модель:
- Файл
router.go
создает объект маршрутизатора и имеет функциюRegisterRoute
. - Каждый файл, представляющий отдельный объект или компонент API, может вызывать
RegisterRoute
и добавлять дополнительные маршруты к маршрутизатору.
Я понятия не имею, как это сделать, потому что, похоже, требуется создать функцию инициализации для каждого файла и вызвать ее из main()
(что противоречит цели). Есть ли какой-либо принятый способ сделать это?
func init()
это то, что вы ищете. - person Volker   schedule 17.12.2016