Файл go.mod
должен находиться в корне вашего проекта (в данном случае my-api-server/go.mod
).
Первая часть пути модуля должна быть доменом / путем. Например, полный путь может быть github.com/your-github-username/my-api-server
. Ошибка, которую вы видите, заключается в том, что первая часть не является доменом (с точкой). Вам не нужно публиковать модуль для его разработки, но вам нужно использовать правильное доменное имя.
Получив путь к модулю, вы можете импортировать пакеты, содержащиеся в этом модуле, используя полный путь к модулю +"/" + относительный путь пакета. Например,
import "github.com/your-github-username/my-api-server/my-utils/uuid"
Поскольку main.go
и uuid
содержатся в одном и том же модуле, вам не нужен оператор require
в файле go.mod
, чтобы использовать пакет uuid
,Вы можете импортировать его, как любой другой пакет, и он будет работать.
Я рекомендую использовать go build
и запустить полученный исполняемый файл, а не go run
, чтобы убедиться, что вы включили все файлы, необходимые для сборки. process.
См. https://blog.golang.org/using-go-modules для пошагового руководства по использованию модулей Go, включая второй пост из этой серии о том, как преобразовать проект для использования модулей.