Sdílet prostřednictvím


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

Nainstalujte balíček @azure/schema-registry-json.

Nainstalujte klientskou knihovnu Azure Analýza textu pro JavaScript pomocí npmpří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átu application/json+<Schema ID> , kde application/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-hubsEventData

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.

Imprese