本文整理汇总了Golang中github.com/elodina/go-avro.Schema类的典型用法代码示例。如果您正苦于以下问题:Golang Schema类的具体用法?Golang Schema怎么用?Golang Schema使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Schema类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GetVersion
func (this *CachedSchemaRegistryClient) GetVersion(subject string, schema avro.Schema) (int32, error) {
var schemaVersionMap map[avro.Schema]int32
var exists bool
if schemaVersionMap, exists = this.versionCache[subject]; !exists {
schemaVersionMap = make(map[avro.Schema]int32)
this.versionCache[subject] = schemaVersionMap
}
var version int32
if version, exists = schemaVersionMap[schema]; exists {
return version, nil
}
request, err := this.newDefaultRequest("POST",
fmt.Sprintf(CHECK_IS_REGISTERED, subject),
strings.NewReader(fmt.Sprintf("{\"schema\": %s}", strconv.Quote(schema.String()))))
response, err := http.DefaultClient.Do(request)
if err != nil {
return 0, err
}
if this.isOK(response) {
decodedResponse := &GetSubjectVersionResponse{}
if this.handleSuccess(response, decodedResponse) != nil {
return 0, err
}
schemaVersionMap[schema] = decodedResponse.Version
return decodedResponse.Version, err
} else {
return 0, this.handleError(response)
}
}
开发者ID:sunshine-zhd1229,项目名称:go_kafka_client,代码行数:33,代码来源:schema_registry.go
示例2: Register
func (this *CachedSchemaRegistryClient) Register(subject string, schema avro.Schema) (int32, error) {
var schemaIdMap map[avro.Schema]int32
var exists bool
if schemaIdMap, exists = this.schemaCache[subject]; !exists {
schemaIdMap = make(map[avro.Schema]int32)
this.schemaCache[subject] = schemaIdMap
}
var id int32
if id, exists = schemaIdMap[schema]; exists {
return id, nil
}
request, err := this.newDefaultRequest("POST",
fmt.Sprintf(REGISTER_NEW_SCHEMA, subject),
strings.NewReader(fmt.Sprintf("{\"schema\": %s}", strconv.Quote(schema.String()))))
response, err := http.DefaultClient.Do(request)
if err != nil {
return 0, err
}
if this.isOK(response) {
decodedResponse := &RegisterSchemaResponse{}
if this.handleSuccess(response, decodedResponse) != nil {
return 0, err
}
schemaIdMap[schema] = decodedResponse.Id
this.idCache[decodedResponse.Id] = schema
return decodedResponse.Id, err
} else {
return 0, this.handleError(response)
}
}
开发者ID:sunshine-zhd1229,项目名称:go_kafka_client,代码行数:35,代码来源:schema_registry.go
注:本文中的github.com/elodina/go-avro.Schema类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论