Skip to content

Commit f3055be

Browse files
RickTalkenrtalkenanchitj
authored
Correct SchemaReferences in APIs that return Schemas (confluentinc#1304)
* Correct SchemaReferences in APIs that return Schemas * Add CHANGELOG --------- Co-authored-by: rtalken <rtalken@farmobile.com> Co-authored-by: Anchit Jain <anjain@confluent.io>
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy