Package Exports
- @azure/schema-registry
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@azure/schema-registry) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Azure Schema Registry client library for JavaScript
Azure Schema Registry is a could-based service that stores schemas for serialization. It can be leveraged by serializers to keep payload size smaller by sending only a schema ID rather than a full schema.
Getting started
- Node.js version 8.x.x or higher
Prerequisites
- An Azure subscription
- An existing Schema Registry resource
Install the @azure/schema-registry package
Install the Azure Text Analytics client library for JavaScript with npm:
npm install @azure/schema-registryCreate and authenticate a SchemaRegistryClient
To create a client object to access the Schema Registry API, you will need the
endpoint of your Schema Registry resource and a credential. The Schema
Registry client uses Azure Active Directory credentials to authenticate.
Using an Azure Active Directory Credential
Client API key authentication is used in most of the examples, but you can also
authenticate with Azure Active Directory using the Azure Identity
library. To use the
DefaultAzureCredential provider shown below, or other
credential providers provided with the Azure SDK, please install the
@azure/identity package:
npm install @azure/identitySet the values of the client ID, tenant ID, and client secret of the AAD
application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET.
const { DefaultAzureCredential } = require("@azure/identity");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const client = new SchemaRegistryClient("<endpoint>", new DefaultAzureCredential());Key concepts
SchemaRegistryClient
SchemaRegistryClient provides the API for storing and retrieving schemas in
schema registry.
SchemaRegistry serializers
- SchemaRegistryAvroSerializer is a separate package that
uses SchemaRegistryClientto pair schema ID along with Avro Binary Encoding.
Examples
Register a schema
const { DefaultAzureCredential } = require("@azure/identity");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const client = new SchemaRegistryClient("<endpoint>", new DefaultAzureCredential());
const description = {
  name: "<name>",
  group: "<group>",
  serializationType: "<serialization type>"
  content: "<schema content>"
}
const registered = await client.registerSchema(description);
console.log(registered.id);Get ID of existing schema
const { DefaultAzureCredential } = require("@azure/identity");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const client = new SchemaRegistryClient("<endpoint>", new DefaultAzureCredential());
const description = {
  name: "<name>",
  group: "<group>",
  serializationType: "<serialization type>"
  content: "<schema content>"
}
const found = await client.getSchemaId(description);
console.log(`Got schema ID=${found.id}`);Get content of existing schema by ID
const { DefaultAzureCredential } = require("@azure/identity");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const client = new SchemaRegistryClient("<endpoint>", new DefaultAzureCredential());
const foundSchema = await client.getSchemaById("<id>");
console.log(`Got schema content=${foundSchema.content}`);Troubleshooting
Enable logs
You can set the following environment variable to see debug logs when using this library.
- Getting debug logs from the Azure Schema Registry client library
export DEBUG=azure*Next steps
Please take a look at the samples directory for detailed examples on how to use this library.
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
If you'd like to contribute to this library, please read the contributing guide to learn more about how to build and test the code.
Related projects
