Установка
Установите консольную утилиту Swipe:
git clone -b v3 git@github.com:swipe-io/swipe.gitcd swipe/v3 && makeSwipe требуется версия Go с поддержкой Golang Modules. Поэтому не забудьте инициализировать модуль Go:
go mod init <name>Утилита swipe генерирует код с использованием плагинов у которых есть настройки. Настройки организованы на основе патерна
options as func.
У каждого плагина свой набор настроек.
Перед написание файла конфигурации необходимо сненерировать файды настроек, для этого надо выполнить следующую команду:
swipe3 initSwipe сгенерирует файлы настроек в пакет <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/...