Azure Schema Registry Json Serializer-clientbibliotheek voor JavaScript - versie 1.0.0-beta.1
Azure Schema Registry is een service voor schemaopslagplaats die wordt gehost door Azure Event Hubs, die schemaopslag, versiebeheer en beheer biedt. Dit pakket biedt een Json-serialisatiefunctie die nettoladingen met JSON-geserialiseerde gegevens kan serialiseren en deserialiseren.
Belangrijke koppelingen:
Aan de slag
Vereisten
- Een Azure-abonnement
- Een bestaande schemaregisterresource
Installeer het pakket @azure/schema-registry-json
Installeer de Azure Text Analytics-clientbibliotheek voor JavaScript met npm
:
npm install @azure/schema-registry-json
Belangrijkste concepten
JsonSerializer
Biedt API voor serialisatie en deserialisatie van JSON die is verpakt in een bericht met een inhoudstypeveld dat de schema-id bevat. Maakt gebruik SchemaRegistryClient
van het pakket @azure/schemaregister om schema-id's op te halen uit de schemadefinitie of omgekeerd. De opgegeven API heeft een interne cache om te voorkomen dat de schemaregisterservice wordt aangeroepen, indien mogelijk.
Berichten
Standaard maakt de serializer berichten die als volgt zijn gestructureerd:
data
: een bytematrix met JSON-gegevens.contentType
: een tekenreeks van de volgende indelingapplication/json+<Schema ID>
waarbij hetapplication/json
onderdeel aangeeft dat dit bericht een Json-geserialiseerde nettolading heeft en het<Schema Id>
deel de schema-id is die de Schema Registry-service is toegewezen aan het schema dat wordt gebruikt om deze nettolading te serialiseren.
Niet alle berichtenservices ondersteunen dezelfde berichtstructuur. Om integratie met dergelijke services mogelijk te maken, kan de serializer reageren op aangepaste berichtstructuren door de messageAdapter
optie in de constructor in te stellen met een bijbehorende berichtproducent en -consument. Azure Messaging-clientbibliotheken exporteren standaardadapters voor hun berichttypen.
Voorbeelden
Een serialiseren en deserialiseren @azure/event-hubs
EventData
const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@azure/event-hubs");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const { JsonSerializer } = require("@azure/schema-registry-json");
const client = new SchemaRegistryClient(
"<fully qualified namespace>",
new DefaultAzureCredential()
);
const serializer = new JsonSerializer(client, {
groupName: "<group>",
messageAdapter: createEventDataAdapter(),
});
// Example Json schema
const schema = JSON.stringify({
$schema: "http://json-schema.org/draft-04/schema#",
$id: "person",
title: "Student",
description: "A student in the class",
type: "object",
properties: {
name: {
type: "string",
description: "The name of the student",
},
},
required: ["name"]
});
// Example value that matches the Json schema above
const value = { name: "Bob" };
// Serialize value to a message
const message = await serializer.serialize(value, schema);
// Deserialize a message to value
const deserializedValue = await serializer.deserialize(message);
De serialisatiefunctie controleert niet of de gedeserialiseerde waarde overeenkomt met het schema, maar biedt een optie om een dergelijke validatie te implementeren. De toepassing kan een validatie-callbackfunctie doorgeven als een van de opties voor de deserialisatiemethode, waar schemavalidatie kan worden geïmplementeerd.
Bekijk het voorbeeld om te zien hoe de schemaRegistryJsonWithValidation
validatie kan worden geïmplementeerd.
Problemen oplossen
De Json-serializer communiceert zo nodig met de schemaregisterservice om schema's te registreren of op te vragen. Deze service-aanroepen kunnen een RestError genereren. Bovendien worden er fouten van het type Error
gegenereerd wanneer serialisatie of deserialisatie mislukt. De cause
eigenschap bevat de onderliggende fout die is gegenereerd vanuit de JSON-parser.
Logboekregistratie
Het inschakelen van logboekregistratie kan helpen bij het ontdekken van nuttige informatie over fouten. Als u een logboek met HTTP-aanvragen en -antwoorden wilt zien, stelt u de AZURE_LOG_LEVEL
omgevingsvariabele in op info
. U kunt logboekregistratie ook tijdens runtime inschakelen door aan te roepen setLogLevel
in de @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Volgende stappen
Bekijk de map met voorbeelden voor gedetailleerde voorbeelden van het gebruik van deze bibliotheek.
Bijdragen
Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar https://cla.microsoft.com voor meer informatie.
Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.
Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.
Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de handleiding voor bijdragen voor meer informatie over het bouwen en testen van de code.
Verwante projecten
Azure SDK for JavaScript
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor