Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 829 Bytes

codec.md

File metadata and controls

42 lines (35 loc) · 829 Bytes

Tooling

Introduction

go chassis abstract common tool, such as codec, cipher. With those plugins you can easily switch implementation.

Usage

the development of plugin has the same pattern, use codec for example.

1.Implement and install a new function

// StdJson implement standard json codec
type StdJson struct {
}

func newDefault(opts Options) (codec.Codec, error) {
return &StdJson{}, nil
}
func (s *StdJson) Encode(v any) ([]byte, error) {
return json.Marshal(v)
}

func (s *StdJson) Decode(data []byte, v any) error {
return json.Unmarshal(data, v)
}
...
codec.Install("encoding/json", newDefault)

2.Configure it in chassis.yaml

servicecomb:
  codec:
    plugin: encoding/json
  1. just call API before you create a resource
data, err := codec.Encode(Person{Name: "a"})