Compartir a través de


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

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

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 formato application/json+<Schema ID> donde la parte de application/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-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);
});

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.

impresiones