Last active
October 18, 2022 08:26
-
-
Save aseigneurin/5730c07b4136a84acb5aeec42310312c to your computer and use it in GitHub Desktop.
Register an Avro schema against the Confluent Schema Registry
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import os | |
import sys | |
import requests | |
schema_registry_url = sys.argv[1] | |
topic = sys.argv[2] | |
schema_file = sys.argv[3] | |
aboslute_path_to_schema = os.path.join(os.getcwd(), schema_file) | |
print("Schema Registry URL: " + schema_registry_url) | |
print("Topic: " + topic) | |
print("Schema file: " + schema_file) | |
with open(aboslute_path_to_schema, 'r') as content_file: | |
schema = content_file.read() | |
payload = "{ \"schema\": \"" \ | |
+ schema.replace("\"", "\\\"").replace("\t", "").replace("\n", "") \ | |
+ "\" }" | |
url = schema_registry_url + "/subjects/" + topic + "-value/versions" | |
headers = {"Content-Type": "application/vnd.schemaregistry.v1+json"} | |
r = requests.post(url, headers=headers, data=payload) | |
if r.status_code == requests.codes.ok: | |
print("Success") | |
else: | |
r.raise_for_status() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Please add a license that permits reuse. We want to use what you have and have an extension for security but can't without a license like
# Licensed under the Apache 2.0 license
as the second line.
Thanks