Khi sử dụng resty để sent POST (Restful API) thì nếu nhận về payload nhận về sẽ là chuổi json
chuyển đổi json và struct trong golang
Nim tham khảo link này
https://golangbyexample.com/struct-json-golang/
>>>>>model type In4Connector struct { Name string `json:"name,omitempty"` Config struct { ConnectorClass string `json:"connector.class,omitempty"` SnapshotLockingMode string `json:"snapshot.locking.mode,omitempty"` TasksMax string `json:"tasks.max,omitempty"` DatabaseHistoryKafkaTopic string `json:"database.history.kafka.topic,omitempty"` TransformsTopicRoutingMap string `json:"transforms.topicRouting.map,omitempty"` Transforms string `json:"transforms,omitempty"` IncludeSchemaChanges string `json:"include.schema.changes,omitempty"` TableWhitelist string `json:"table.whitelist,omitempty"` TombstonesOnDelete string `json:"tombstones.on.delete,omitempty"` DecimalHandlingMode string `json:"decimal.handling.mode,omitempty"` >>>>handler func (r *Resty) ResetConnector(clusterAlias string, connector string, token string, offsetTopic string) (error) { client.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true}) //get detail infomation of a connector var response = restclient_model.In4Connector{} resp, err := client.R(). SetHeader("Accept", "application/json"). SetHeader("x-kafka-lenses-token", token). Get(r.Url+"/api/proxy-connect/"+clusterAlias+"/connectors/"+connector) if err != nil { log.Error(err.Error()) return err } err = json.Unmarshal([]byte(resp.String()), &response) if err != nil { log.Error(err.Error()) return err }
Bạn là để ý là mình sẽ chuẩn bị 1 struct là In4Connector
Tiếp đó mỉnh sử dụng json.Unmarshal([]byte(), ) để chuyển string resp.String() sang struct và đưa vào &response
GoLang Byte Array to String
https://golangdocs.com/golang-byte-array-to-string