Установка
Установите консольную утилиту Swipe:
git clone -b v3 git@github.com:swipe-io/swipe.gitcd swipe/v3 && make
Swipe требуется версия Go с поддержкой Golang Modules. Поэтому не забудьте инициализировать модуль Go:
go mod init <name>
Утилита swipe генерирует код с использованием плагинов у которых есть настройки. Настройки организованы на основе патерна
options as func
.
У каждого плагина свой набор настроек.
Перед написание файла конфигурации необходимо сненерировать файды настроек, для этого надо выполнить следующую команду:
swipe3 init
Swipe сгенерирует файлы настроек в пакет <package>/pkg/swipe
.
Для описания параметров генерации создайте файл .go.
- Добавьте тег сборки
// +build swipe
, чтобы Golang игнорировал файл когда вы будете собирать ваше приложение. - Добавьте функцию с любым именем, можно использовать не экспортируемое имя
- В тело функции добавьте вызов функции плагина, например
gokit.Gokit(opts ...GokitOption)
.
Ниже представлен простой пример файла настройки генерации JSON RPC транспорта:
//+build swipe
package transport
import ( "github.com/examples/example/pkg/interface/controller" "github.com/examples/example/pkg/swipe/gokit")
func swipe() { gokit.Gokit( gokit.HTTPServer(), gokit.JSONRPCEnable(), gokit.ClientsEnable([]string{"js"}),
gokit.Interface((*controller.UserControllerIface)(nil), "user", gokit.ClientName("user")), gokit.Interface((*controller.TaskControllerIface)(nil), "task", gokit.ClientName("task")),
gokit.MethodDefaultOptions( gokit.Logging(true), gokit.Instrumenting(true), ), )}
Если вы хотите сгенерировать код, вы можете запустить:
swipe3 gen ./pkg/...