Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Schema Registry est un service de référentiel de schémas hébergé par Azure Event Hubs, qui fournit le stockage des schémas, le contrôle de version et la gestion. Ce package fournit un sérialiseur Json capable de sérialiser et désérialiser des charges utiles contenant des données json-sérialisées.
Liens clés :
Prise en main
Prérequis
- Un abonnement Azure
- Une ressource de registre de schémas existante
Installez le package @azure/schema-registry-json
Installez la bibliothèque de client Azure Analyse de texte pour JavaScript avec npm
:
npm install @azure/schema-registry-json
Concepts clés
JsonSerializer
Fournit une API pour sérialiser et désérialiser à partir de JSON encapsulé dans un message avec un champ de type de contenu contenant l’ID de schéma. Utilise SchemaRegistryClient
à partir du package @azure/schema-registry pour obtenir des ID de schéma à partir de la définition de schéma ou vice versa. L’API fournie dispose d’un cache interne pour éviter d’appeler le service de registre de schémas lorsque cela est possible.
Messages
Par défaut, le sérialiseur crée des messages structurés comme suit :
data
: tableau d’octets contenant des données JSON.contentType
: chaîne au formatapplication/json+<Schema ID>
suivant où laapplication/json
partie indique que ce message a une charge utile sérialisée json et la<Schema Id>
partie est l’ID de schéma que le service Registre de schéma a affecté au schéma utilisé pour sérialiser cette charge utile.
Tous les services de messagerie ne prennent pas en charge la même structure de message. Pour activer l’intégration avec ces services, le sérialiseur peut agir sur des structures de messages personnalisées en définissant l’option messageAdapter
dans le constructeur avec un producteur de messages et un consommateur de messages correspondants. Les bibliothèques clientes de messagerie Azure exportent les adaptateurs par défaut pour leurs types de messages.
Exemples
Sérialiser et désérialiser un @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);
Le sérialiseur ne case activée pas si la valeur désérialisée correspond au schéma, mais fournit une option pour implémenter une telle validation. L’application peut passer une fonction de rappel de validation comme l’une des options de la méthode de désérialisation où la validation de schéma peut être implémentée.
Pour voir comment la validation peut être implémentée, consultez l’exemple schemaRegistryJsonWithValidation
.
Dépannage
Le sérialiseur Json communique avec le service Registre de schémas en fonction des besoins pour inscrire ou interroger des schémas, et ces appels de service peuvent lever une erreur RestError. En outre, des erreurs de type Error
sont levées en cas d’échec de la sérialisation ou de la désérialisation. La cause
propriété contient l’erreur sous-jacente qui a été levée à partir de l’analyseur JSON.
Journalisation
L’activation de la journalisation peut vous aider à mieux comprendre les échecs. Pour avoir un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL
sur info
. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel
dans @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Étapes suivantes
Consultez le répertoire d’exemples pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.
Projets associés
Azure SDK for JavaScript