Biblioteca de cliente Json Serializer do Registro do 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, controle de versão e gerenciamento de esquema. Este pacote fornece um serializador Json capaz de serializar e desserializar cargas úteis contendo dados serializados por Json.
Ligações principais:
- Código fonte
- Pacote (npm)
- de documentação de referência da API
- Amostras
Primeiros passos
Pré-requisitos
- Uma assinatura do Azure
- Um recurso existente do Registro de Esquema
Instalar o pacote @azure/schema-registry-json
Instale a biblioteca de cliente do Azure Text Analytics para JavaScript com npm
:
npm install @azure/schema-registry-json
Conceitos-chave
JsonSchemaSerializer
Fornece API para serializar e desserializar de JSON encapsulado em uma mensagem com um campo de tipo de conteúdo contendo 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 contendo dados JSON.contentType
: uma cadeia de caracteres do seguinte formatoapplication/json+<Schema ID>
onde a parteapplication/json
sinaliza que esta mensagem tem uma carga serializada em Json, e a parte<Schema Id>
é a ID do Esquema, o serviço Registro de Esquema atribuído ao esquema usado para serializar essa carga.
Nem todos os serviços de mensagens suportam a mesma estrutura de mensagens. Para habilitar a integração com esses serviços, o serializador pode agir em estruturas de mensagens personalizadas definindo a opção messageAdapter
no construtor com um produtor e consumidor de mensagens correspondente. As bibliotecas de cliente de mensagens do Azure exportam adaptadores padrão para seus tipos de mensagem.
Exemplos
Serializar e desserializar uma EventData
do @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 de desserialização onde a validação de esquema pode ser implementada.
Para ver como a validação pode ser implementada, verifique a amostra de schemaRegistryJsonWithValidation
.
Solução de problemas
O serializador Json se comunica com o serviço Schema Registry conforme necessário para registrar ou consultar esquemas e essas chamadas de serviço podem lançar um RestError. Além disso, erros do tipo Error
serão lançados quando a serialização ou desserialização falhar. A propriedade cause
conterá o erro subjacente que foi lançado do analisador JSON.
Registo
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 tempo de execução chamando setLogLevel
no @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Próximos passos
Por favor, dê uma olhada no exemplos diretório para obter exemplos detalhados sobre como usar esta biblioteca.
Contribuição
Este projeto acolhe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA) declarando que você tem o direito de, e realmente concede, os direitos de usar sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Quando você envia uma solicitação pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar o 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 Microsoft Open Source Code of Conduct. Para obter mais informações, consulte o de perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com para obter perguntas ou comentários adicionais.
Se você quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Projetos relacionados
Azure SDK for JavaScript