Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Schema Registry je služba úložiště schémat hostovaná službou Azure Event Hubs, která poskytuje úložiště schématu, správu verzí a správu. Tento balíček poskytuje serializátor Json umožňující serializaci a deserializaci datových částí obsahujících data serializovaná json.
Klíčové odkazy:
- zdrojového kódu
- balíčku (npm)
- Referenční dokumentace k rozhraní API
- ukázky
Začínáme
Požadavky
- Předplatné Azure
- Existující prostředek registru schématu
Instalace balíčku @azure/schema-registry-json
Nainstalujte klientskou knihovnu Azure Text Analytics pro JavaScript s npm:
npm install @azure/schema-registry-json
Klíčové koncepty
JsonSchemaSerializer
Poskytuje rozhraní API pro serializaci a deserializaci z JSON zabaleného ve zprávě s polem typu obsahu obsahujícím ID schématu. Používá SchemaRegistryClient z balíčku @azure/schema-registry k získání ID schématu z definice schématu nebo naopak. Poskytnuté rozhraní API má interní mezipaměť, aby se zabránilo volání služby registru schématu, pokud je to možné.
Zprávy
Serializátor ve výchozím nastavení vytvoří zprávy strukturované takto:
data: pole bajtů obsahující data JSON.contentType: řetězec následujícího formátuapplication/json+<Schema ID>, kdeapplication/jsončást signalizuje, že tato zpráva má datovou část serializovanou json a<Schema Id>část je ID schématu, které služba Registru schématu přiřazená schématu použitému k serializaci této datové části.
Ne všechny služby zasílání zpráv podporují stejnou strukturu zpráv. Chcete-li povolit integraci s těmito službami, serializátor může pracovat s vlastními strukturami zpráv nastavením možnosti messageAdapter v konstruktoru s odpovídajícím producentem a příjemcem zpráv. Klientské knihovny zasílání zpráv v Azure exportují výchozí adaptéry pro jejich typy zpráv.
Příklady
Serializace a deserializace EventData@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);
});
Serializátor nekontroluje, zda deserializovaná hodnota odpovídá schématu, ale poskytuje možnost implementovat takové ověření. Aplikace může předat funkci zpětného volání ověření jako jednu z možností deserializovat metodu, kde je možné implementovat ověřování schématu.
Pokud chcete zjistit, jak se ověření implementuje, projděte si ukázku schemaRegistryJsonWithValidation.
Řešení problémů
Serializátor Json komunikuje se službou Schema Registry podle potřeby k registraci schématu nebo dotazování schémat a volání těchto služeb by mohla vyvolat RestError. Chyby typu Error budou navíc vyvolána při selhání serializace nebo deserializace. Vlastnost cause bude obsahovat podkladovou chybu, která byla vyvolána z analyzátoru JSON.
Protokolování
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Další kroky
Podrobné příklady použití této knihovny najdete v ukázkách adresáři.
Přispívající
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Podrobnosti najdete v https://cla.microsoft.com.
Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA, a odpovídajícím způsobem vyzdobit žádost o přijetí změn (např. popisek, komentář). Stačí postupovat podle pokynů poskytovaných robotem. Stačí to udělat jen jednou napříč všemi úložištěmi pomocí naší cla.
Tento projekt přijal pravidla chování microsoftu open source . Další informace najdete v nejčastějších dotazech k kodexu chování nebo kontaktujte opencode@microsoft.com s dalšími dotazy nebo komentáři.
Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.
Související projekty
Azure SDK for JavaScript