Compartir a través de


Biblioteca cliente del serializador json del Registro de esquemas de Azure para JavaScript: versión 1.0.0-beta.1

Azure Schema Registry es un servicio de repositorio de esquemas hospedado por Azure Event Hubs, lo que proporciona almacenamiento de esquemas, control de versiones y administración. Este paquete proporciona un serializador Json capaz de serializar y deserializar cargas que contienen datos serializados json.

Vínculos principales:

Introducción

Requisitos previos

Instalar el paquete @azure/schema-registry-json

Instale la biblioteca cliente de Azure Text Analytics para JavaScript con npm:

npm install @azure/schema-registry-json

Conceptos clave

JsonSerializer

Proporciona api para serializar y deserializar desde JSON encapsulado en un mensaje con un campo de tipo de contenido que contiene el identificador de esquema. Usa SchemaRegistryClient del paquete @azure/schema-registry para obtener identificadores de esquema de la definición de esquema o viceversa. La API proporcionada tiene caché interna para evitar llamar al servicio del registro de esquemas siempre que sea posible.

error de Hadoop

De forma predeterminada, el serializador creará mensajes estructurados de la siguiente manera:

  • data: una matriz de bytes que contiene datos JSON.

  • contentType: una cadena con el siguiente formato application/json+<Schema ID> , donde la application/json parte indica que este mensaje tiene una carga serializada de Json y la <Schema Id> parte es el identificador de esquema, el servicio registro de esquema asignado al esquema usado para serializar esta carga.

No todos los servicios de mensajería admiten la misma estructura de mensajes. Para habilitar la integración con estos servicios, el serializador puede actuar en estructuras de mensajes personalizadas estableciendo la messageAdapter opción en el constructor con un productor de mensajes y un consumidor correspondientes. Las bibliotecas cliente de mensajería de Azure exportan adaptadores predeterminados para sus tipos de mensajes.

Ejemplos

Serialización y deserialización de una clase @azure/event-hubsEventData

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);

El serializador no comprueba si el valor deserializado coincide con el esquema, pero proporciona una opción para implementar dicha validación. La aplicación puede pasar una función de devolución de llamada de validación como una de las opciones al método deserialize donde se puede implementar la validación del esquema. Para ver cómo se puede implementar la validación, consulte el schemaRegistryJsonWithValidation ejemplo.

Solución de problemas

El serializador Json se comunica con el servicio Registro de esquemas según sea necesario para registrar o consultar esquemas y esas llamadas de servicio podrían producir un restError. Además, se producirán errores de tipo Error cuando se produzca un error en la serialización o deserialización. La cause propiedad contendrá el error subyacente que se produjo desde el analizador JSON.

Registro

La habilitación del registro puede ayudar a descubrir información útil sobre los errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en @azure/logger:

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

setLogLevel("info");

Pasos siguientes

Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones