Klientská knihovna Json Serializátoru azure Schema Registry pro JavaScript – verze 1.0.0-beta.1
Azure Schema Registry je služba úložiště schémat hostovaná službou Azure Event Hubs, která poskytuje úložiště schémat, 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 serializovaná data JSON.
Klíčové odkazy:
Začínáme
Požadavky
- Předplatné Azure
- Existující prostředek registru schémat
Nainstalujte balíček @azure/schema-registry-json
.
Nainstalujte klientskou knihovnu Azure Analýza textu pro JavaScript pomocí npm
příkazu :
npm install @azure/schema-registry-json
Klíčové koncepty
JsonSerializer
Poskytuje rozhraní API pro serializaci a deserializaci z JSON zabaleného do zprávy s polem typu obsahu obsahujícím ID schématu. Používá SchemaRegistryClient
z balíčku registru @azure/schema-registry k získání ID schématu z definice schématu nebo naopak. Zadané rozhraní API má interní mezipaměť, aby se zabránilo volání služby registru schémat, pokud je to možné.
Zprávy
Ve výchozím nastavení serializátor vytvoří zprávy strukturované takto:
data
: pole bajtů obsahující data JSON.contentType
: Řetězec v následujícím formátuapplication/json+<Schema ID>
, kdeapplication/json
část signalizuje, že tato zpráva má datovou část serializovanou ve formátu JSON a<Schema Id>
část je ID schématu služby registru schémat 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 reagovat na vlastní struktury zpráv nastavením messageAdapter
možnosti v konstruktoru s odpovídajícím producentem a příjemcem zprávy. Klientské knihovny zasílání zpráv Azure exportují výchozí adaptéry pro jejich typy zpráv.
Příklady
Serializace a deserializace @azure/event-hubs
EventData
const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@azure/event-hubs");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const { JsonSerializer } = require("@azure/schema-registry-json");
const client = new SchemaRegistryClient(
"<fully qualified namespace>",
new DefaultAzureCredential()
);
const serializer = new JsonSerializer(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);
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í do metody deserialize, kde lze implementovat ověřování schématu.
Pokud chcete zjistit, jak by se ověřování mohlo implementovat, podívejte se na ukázku schemaRegistryJsonWithValidation
.
Poradce při potížích
Serializátor JSON komunikuje se službou registru schémat podle potřeby kvůli registraci nebo dotazování schémat a tato volání služby by mohla vyvolat chybu RestError. Kromě toho budou vyvolána chyby typu Error
při selhání serializace nebo deserializace. Vlastnost cause
bude obsahovat základní chybu, která byla vyvolána z analyzátoru JSON.
protokolování
Povolení protokolování může pomoct odhalit užitečné informace o selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL
prostředí na info
. Případně je možné 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 adresáři ukázek .
Přispívání
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á stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com
Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.
Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.
Pokud chcete přispívat do této knihovny, přečtěte si příručku pro přispívání , kde najdete další informace o tom, jak sestavit a otestovat kód.
Související projekty
Azure SDK for JavaScript
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro