Генерация клиента REST и JSON RPC
#
Генерация клиентаВы можете сгенерировать Golang клиента для JSON RPC и REST, JavaScript клиента для JSON RPC.
ClientsEnable
включает генерацию.
// +build swipe
package example
import ( "github.com/example/app/pkg/controller" "github.com/example/app/pkg/swipe/gokit")
func swipe() { gokit.Gokit( gokit.Interface((*controller.ExampleController)(nil), "example"), gokit.HTTPServer(), gokit.ClientsEnable([]string{"go"}), gokit.JSONRPCEnable(), )}
- go включает генерацию для Golang
- js включает генерация для JavaScript
info
Если не включать генерацию серверной части удалив gokit.HTTPServer()
то на основе интерфейса сгенерируется только клиент.
#
Изменение имени клиентаClientName
используется для того, чтобы изменить имя клиента.
info
По умолчанию имя клиента генерируется на основе имени интерфейса.
// +build swipe
package example
import ( "github.com/example/app/pkg/controller" "github.com/example/app/pkg/swipe/gokit")
func swipe() { gokit.Gokit( gokit.Interface( (*controller.ExampleController)(nil), "example", gokit.ClientName("example"), // будет использовано имя Example вместо ExampleController ), gokit.HTTPServer(), gokit.ClientsEnable([]string{"go"}), gokit.JSONRPCEnable(), )}
#
Собственная функция для кодирования запроса.ClientEncodeRequest
используется для установки функции кодирования запроса.
// +build swipe
package example
import ( "github.com/example/app/pkg/controller" "github.com/example/app/pkg/swipe/gokit")
func swipe() { gokit.Gokit( gokit.Interface((*controller.ExampleController)(nil), "example"), gokit.HTTPServer(), gokit.JSONRPCEnable(), gokit.MethodOptions(controller.ExampleController.Get, gokit.ClientEncodeRequest(youpkg.FuncName), ), )}
Более подробно смотрите документацию Gokit.
#
Собственная функция для раскодировки ответа.ClientEncodeRequest
используется для установки функции раскодировки ответа.
// +build swipe
package example
import ( "github.com/example/app/pkg/controller" "github.com/example/app/pkg/swipe/gokit")
func swipe() { gokit.Gokit( gokit.Interface((*controller.ExampleController)(nil), "example"), gokit.HTTPServer(), gokit.JSONRPCEnable(), gokit.MethodOptions(controller.ExampleController.Get, gokit.ClientDecodeResponse(youpkg.FuncName), ), )}
Более подробно смотрите документацию Gokit.