Neverending Programming Mistakes

    @azure/schema-registry
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0-beta.1 • Public • Published

    Azure Schema Registry client library for JavaScript

    Azure Schema Registry is a schema repository service hosted by Azure Event Hubs, providing schema storage, versioning, and management. The registry is leveraged by serializers to reduce payload size while describing payload structure with schema identifiers rather than full schemas.

    Getting started

    • Node.js version 8.x.x or higher

    Prerequisites

    Install the @azure/schema-registry package

    Install the Azure Text Analytics client library for JavaScript with npm:

    npm install @azure/schema-registry

    Create 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.

    You can 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/identity

    Set 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

    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

    Logging

    Enabling logging may help uncover useful information about failures. In order to see a log of HTTP requests and responses, set the AZURE_LOG_LEVEL environment variable to info. Alternatively, logging can be enabled at runtime by calling setLogLevel in the @azure/logger:

    const { setLogLevel } = require("@azure/logger");
     
    setLogLevel("info");

    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

    Impressions

    Install

    npm i @azure/schema-registry

    DownloadsWeekly Downloads

    476

    Version

    1.0.0-beta.1

    License

    MIT

    Unpacked Size

    133 kB

    Total Files

    35

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar