Skip to content

Commit f3055be

Browse files
RickTalkenrtalkenanchitj
authored
Correct SchemaReferences in APIs that return Schemas (#1304)
* Correct SchemaReferences in APIs that return Schemas * Add CHANGELOG --------- Co-authored-by: rtalken <[email protected]> Co-authored-by: Anchit Jain <[email protected]>
1 parent 87686d0 commit f3055be

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- Wheels for Linux / arm64 (#1496).
88
- Added support for Default num_partitions in CreateTopics Admin API.
99
- Added support for password protected private key in CachedSchemaRegistryClient.
10+
- Add reference support in Schema Registry client. (@RickTalken, #1304)
1011

1112
## v2.0.2
1213

src/confluent_kafka/schema_registry/schema_registry_client.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -370,12 +370,10 @@ def get_schema(self, schema_id):
370370
schema = Schema(schema_str=response['schema'],
371371
schema_type=response.get('schemaType', 'AVRO'))
372372

373-
refs = []
374-
for ref in response.get('references', []):
375-
refs.append(SchemaReference(name=ref['name'],
376-
subject=ref['subject'],
377-
version=ref['version']))
378-
schema.references = refs
373+
schema.references = [
374+
SchemaReference(name=ref['name'], subject=ref['subject'], version=ref['version'])
375+
for ref in response.get('references', [])
376+
]
379377

380378
self._cache.set(schema_id, schema)
381379

@@ -419,7 +417,12 @@ def lookup_schema(self, subject_name, schema, normalize_schemas=False):
419417
return RegisteredSchema(schema_id=response['id'],
420418
schema=Schema(response['schema'],
421419
schema_type,
422-
response.get('references', [])),
420+
[
421+
SchemaReference(name=ref['name'],
422+
subject=ref['subject'],
423+
version=ref['version'])
424+
for ref in response.get('references', [])
425+
]),
423426
subject=response['subject'],
424427
version=response['version'])
425428

@@ -493,7 +496,12 @@ def get_latest_version(self, subject_name):
493496
return RegisteredSchema(schema_id=response['id'],
494497
schema=Schema(response['schema'],
495498
schema_type,
496-
response.get('references', [])),
499+
[
500+
SchemaReference(name=ref['name'],
501+
subject=ref['subject'],
502+
version=ref['version'])
503+
for ref in response.get('references', [])
504+
]),
497505
subject=response['subject'],
498506
version=response['version'])
499507

@@ -524,7 +532,12 @@ def get_version(self, subject_name, version):
524532
return RegisteredSchema(schema_id=response['id'],
525533
schema=Schema(response['schema'],
526534
schema_type,
527-
response.get('references', [])),
535+
[
536+
SchemaReference(name=ref['name'],
537+
subject=ref['subject'],
538+
version=ref['version'])
539+
for ref in response.get('references', [])
540+
]),
528541
subject=response['subject'],
529542
version=response['version'])
530543

0 commit comments

Comments
 (0)