Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Schema Registry es un servicio de repositorio de esquemas hospedado por Azure Event Hubs, 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 clave:
Empezar
Prerrequisitos
- Un de suscripción de Azure de
- Un de recursos del Registro de esquemas de existente
Instalación del 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
JsonSchemaSerializer
Proporciona api para serializar y deserializar desde JSON encapsulado en un mensaje con un campo de tipo de contenido que contenga 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.
Mensajes
De forma predeterminada, el serializador creará mensajes estructurados de la manera siguiente:
data
: una matriz de bytes que contiene datos JSON.contentType
: una cadena del siguiente formatoapplication/json+<Schema ID>
donde la parte deapplication/json
indica que este mensaje tiene una carga serializada por Json y la parte<Schema Id>
es el identificador de esquema que el servicio registro de esquema asigna 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 opción messageAdapter
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 un @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);
});
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 deserializar 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 de según sea necesario para registrar o consultar esquemas y esas llamadas de servicio podrían producir una RestError. Además, los errores de tipo Error
se producirán cuando se produzca un error en la serialización o deserialización. La propiedad cause
contendrá el error subyacente que se produjo desde el analizador JSON.
Registro
Habilitar el registro puede ayudar a descubrir información útil sobre 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 el @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Pasos siguientes
Eche un vistazo al directorio ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.
Contribuyendo
Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia de colaborador (CLA) declarando que tiene derecho a, y en realidad, concedanos los derechos para usar su contribución. Para obtener más información, visite https://cla.microsoft.com.
Al enviar una solicitud de incorporación de cambios, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar la solicitud de incorporación de cambios de forma adecuada (por ejemplo, etiqueta, comentario). Solo tiene que seguir las instrucciones proporcionadas por el bot. Solo tendrá que hacerlo una vez en todos los repositorios mediante nuestro CLA.
Este proyecto ha adoptado el código abierto de conducta de Microsoft. Para obtener más información, consulte el de preguntas más frecuentes sobre el código de conducta de o póngase en contacto con opencode@microsoft.com con preguntas o comentarios adicionales.
Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.
Proyectos relacionados
Azure SDK for JavaScript