Как работает go:embed?

Middle
868 просмотров
AFK Offer AI

Директива //go:embed позволяет встраивать файлы прямо в бинарник на этапе компиляции. Пишешь //go:embed templates/* и переменная типа embed.FS будет содержать все файлы из папки templates. Можно встроить один файл в string или []byte. Это удобно для шаблонов, миграций, статики — не нужно таскать файлы рядом с бинарником. Появилось в Go 1.16 и сразу стало стандартным способом бандлить ресурсы. Никакой магии — всё проверяется компилятором.

Следующий вопрос

Как обеспечить идемпотентность API?