Biblioteca de clientes do Serializador Json do Registro de Esquema do Azure para JavaScript – versão 1.0.0
O Registro de Esquema do Azure é um serviço de repositório de esquema hospedado pelos Hubs de Eventos do Azure, fornecendo armazenamento de esquema, controle de versão e gerenciamento. Esse pacote fornece um serializador Json capaz de serializar e desserializar cargas que contêm dados serializados por Json.
Links de chave:
- código-fonte
- do pacote (npm)
- documentação de referência da API
- exemplos de
Introdução
Pré-requisitos
- Uma assinatura do Azure
- Um recurso existente do Registro de Esquema
Instalar o pacote @azure/schema-registry-json
Instale a biblioteca de clientes da Análise de Texto do Azure para JavaScript com npm
:
npm install @azure/schema-registry-json
Principais conceitos
JsonSchemaSerializer
Fornece a API para serializar e desserializar de JSON encapsulado em uma mensagem com um campo de tipo de conteúdo que contém a ID do esquema. Usa SchemaRegistryClient
do pacote @azure/schema-registry para obter IDs de esquema da definição de esquema ou vice-versa. A API fornecida tem cache interno para evitar chamar o serviço de registro de esquema quando possível.
Mensagens
Por padrão, o serializador criará mensagens estruturadas da seguinte maneira:
data
: uma matriz de bytes que contém dados JSON.contentType
: uma cadeia de caracteres do seguinte formatoapplication/json+<Schema ID>
em que a parteapplication/json
sinaliza que essa mensagem tem um conteúdo serializado por Json e a parte<Schema Id>
é a ID de esquema que o serviço registro de esquema atribuído ao esquema usado para serializar esse conteúdo.
Nem todos os serviços de mensagens são compatíveis com a mesma estrutura de mensagens. Para habilitar a integração com esses serviços, o serializador pode atuar em estruturas de mensagens personalizadas definindo a opção messageAdapter
no construtor com um produtor e consumidor de mensagens correspondentes. As bibliotecas de clientes de mensagens do Azure exportam adaptadores padrão para seus tipos de mensagem.
Exemplos
Serializar e desserializar um EventData
de @azure/event-hubs
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);
});
O serializador não verifica se o valor desserializado corresponde ao esquema, mas fornece uma opção para implementar essa validação. O aplicativo pode passar uma função de retorno de chamada de validação como uma das opções para o método desserializar em que a validação de esquema pode ser implementada.
Para ver como a validação pode ser implementada, confira o exemplo de schemaRegistryJsonWithValidation
.
Solucionando problemas
O serializador Json se comunica com o serviço do Registro de Esquema conforme necessário para registrar ou consultar esquemas e essas chamadas de serviço podem gerar um restError. Além disso, erros do tipo Error
serão gerados quando a serialização ou desserialização falhar. A propriedade cause
conterá o erro subjacente que foi gerado do analisador JSON.
Log
Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL
como info
. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel
no @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Próximas etapas
Examine os exemplos de diretório para obter exemplos detalhados sobre como usar essa biblioteca.
Contribuindo
Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença de Colaborador) declarando que você tem o direito de, e realmente fazer, conceder-nos os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.
Ao enviar uma solicitação de pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar a PR adequadamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, consulte as perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com com perguntas ou comentários adicionais.
Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Projetos relacionados
impressões
Azure SDK for JavaScript