Перейти к основному содержимому
Version: 3.0.0

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