Freigeben über


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

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 Formats application/json+<Schema ID>, in der der application/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-hubsEventData

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 infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert 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.

Aufrufe