Генерация клиента 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.