Partager via


Bibliothèque de client sérialiseur Json du Registre de schémas Azure pour JavaScript - version 1.0.0

Azure Schema Registry est un service de référentiel de schémas hébergé par Azure Event Hubs, fournissant le stockage de schémas, le contrôle de version et la gestion. Ce package fournit un sérialiseur Json capable de sérialiser et de désérialiser des charges utiles contenant des données sérialisées json.

Liens clés :

Commencer

Conditions préalables

  • Un abonnement Azure
  • Une ressource de Registre de schémas existante

Installer le package @azure/schema-registry-json

Installez la bibliothèque cliente Azure Text Analytics pour JavaScript avec npm:

npm install @azure/schema-registry-json

Concepts clés

JsonSchemaSerializer

Fournit l’API pour sérialiser vers 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 inversement. L’API fournie dispose d’un cache interne pour éviter d’appeler le service de Registre de schémas si 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 du format suivant application/json+<Schema ID> où le composant application/json signale que ce message a une charge utile json sérialisée et que la partie <Schema Id> est l’ID de schéma attribué au service Registre de schémas 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 messages. Pour activer l’intégration à 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-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);
});

Le sérialiseur ne vérifie pas si la valeur désérialisée correspond au schéma, mais fournit une option pour implémenter cette 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 de schemaRegistryJsonWithValidation.

Dépannage

Le sérialiseur Json communique avec le service Schema Registry si nécessaire pour inscrire ou interroger des schémas, et ces appels de service peuvent lever un RestError. En outre, les erreurs de type Error sont levées lorsque la sérialisation ou la désérialisation échoue. La propriété cause contient l’erreur sous-jacente levée à partir de l’analyseur JSON.

Exploitation forestière

L’activation de la journalisation peut vous aider à découvrir des informations utiles sur les échecs. Pour afficher 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 la @azure/logger:

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

setLogLevel("info");

Étapes suivantes

Consultez les exemples répertoire pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque.

Contribuant

Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit, et en fait, de nous accorder les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.

Lorsque vous envoyez une demande de tirage( pull request), un bot CLA détermine automatiquement si vous devez fournir un CLA et décorer correctement la demande de tirage (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts à l’aide de notre CLA.

Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez le forum aux questions du Code de conduite ou contactez opencode@microsoft.com avec des questions ou commentaires supplémentaires.

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.

Impressions