Azure Schema Registry Json Serializer Clientbibliothek für JavaScript – Version 1.0.0
Azure Schema Registry ist ein Schema-Repositorydienst, der von Azure Event Hubs gehostet wird und Schemaspeicher, Versionsverwaltung und -verwaltung bereitstellt. Dieses Paket bietet einen JSON-Serialisierer, der Nutzlasten serialisieren und deserialisieren kann, die json-serialisierte Daten enthalten.
Wichtige Links:
Erste Schritte
Voraussetzungen
- Ein Azure-Abonnement
- Eine vorhandene Schemaregistrierungsressource
Installieren des @azure/schema-registry-json
-Pakets
Installieren Sie die Azure Text Analytics-Clientbibliothek für JavaScript mit npm
:
npm install @azure/schema-registry-json
Schlüsselkonzepte
JsonSchemaSerializer
Stellt DIE API bereit, die in eine Nachricht eingeschlossenen JSON-Code mit einem Inhaltstypfeld mit der Schema-ID serialisiert und deserialisiert werden soll. Verwendet SchemaRegistryClient
aus der @azure/Schemaregistrierung Paket zum Abrufen von Schema-IDs aus der Schemadefinition oder umgekehrt. Die bereitgestellte API verfügt über einen internen Cache, um den Aufruf des Schemaregistrierungsdiensts nach Möglichkeit zu vermeiden.
Meldungen
Standardmäßig erstellt der Serialisierer Nachrichten wie folgt:
data
: ein Bytearray, das JSON-Daten enthält.contentType
: eine Zeichenfolge des folgenden Formatsapplication/json+<Schema ID>
, in der derapplication/json
Teil signalisiert, dass diese Nachricht über eine json-serialisierte Nutzlast verfügt und der<Schema Id>
Teil die Schema-ID ist, die dem Schemaregistrierungsdienst zugewiesen ist, der zum Serialisieren dieser Nutzlast verwendet wird.
Nicht alle Messagingdienste unterstützen dieselbe Nachrichtenstruktur. Um die Integration mit solchen Diensten zu ermöglichen, kann der Serialisierer auf benutzerdefinierte Nachrichtenstrukturen reagieren, indem die option messageAdapter
im Konstruktor mit einem entsprechenden Nachrichtenhersteller und Consumer festgelegt wird. Azure Messaging-Clientbibliotheken exportieren Standardadapter für ihre Nachrichtentypen.
Beispiele
Serialisieren und Deserialisieren eines @azure/event-hubs
EventData
const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@azure/event-hubs");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const { JsonSchemaSerializer } = require("@azure/schema-registry-json");
async function main(){
const client = new SchemaRegistryClient(
"<fully qualified namespace>",
new DefaultAzureCredential()
);
const serializer = new JsonSchemaSerializer(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);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Der Serialisierer überprüft nicht, ob der deserialisierte Wert mit dem Schema übereinstimmt, bietet aber eine Möglichkeit, eine solche Überprüfung zu implementieren. Die Anwendung kann eine Überprüfungsrückruffunktion als eine der Optionen an die Deserialisierungsmethode übergeben, bei der die Schemaüberprüfung implementiert werden kann.
Um zu sehen, wie die Validierung implementiert werden kann, lesen Sie bitte das schemaRegistryJsonWithValidation
Beispiel.
Fehlerbehebung
Der JSON-Serializer kommuniziert bei Bedarf mit dem Schemaregistrierungsdienst Dienst, um Schemas zu registrieren oder abzufragen, und diese Dienstaufrufe könnten einen RestError-auslösen. Darüber hinaus werden Fehler vom Typ Error
ausgelöst, wenn die Serialisierung oder Deserialisierung fehlschlägt. Die cause
-Eigenschaft enthält den zugrunde liegenden Fehler, der aus dem JSON-Parser ausgelöst wurde.
Protokollierung
Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL
Umgebungsvariable auf info
fest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel
im @azure/logger
aktiviert werden:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Nächste Schritte
Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie in den Beispielen Verzeichnis.
Beitragend
Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einem Mitwirkenden-Lizenzvertrag (CLA) zustimmen, der erklärt, dass Sie das Recht haben, uns tatsächlich die Rechte zur Nutzung Ihres Beitrags zu gewähren. Weitere Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie eine Pullanfrage einreichen, bestimmt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen und die PR entsprechend dekorieren müssen (z. B. Bezeichnung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal über alle Reposs hinweg tun, indem Sie unsereN CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Code of Conductübernommen. Weitere Informationen finden Sie im Code of Conduct FAQ oder wenden Sie sich an opencode@microsoft.com mit weiteren Fragen oder Kommentaren.
Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.
Verwandte Projekte
Azure SDK for JavaScript