Megosztás a következőn keresztül:


Azure Schema Registry Json Szerializáló ügyfélkódtár JavaScripthez – 1.0.0-s verzió

Az Azure Schema Registry az Azure Event Hubs által üzemeltetett sémaadattár-szolgáltatás, amely sématárolást, verziószámozást és felügyeletet biztosít. Ez a csomag egy Json szerializálót biztosít, amely képes szerializálni és deszerializálni a Json-szerializált adatokat tartalmazó hasznos adatokat.

Főbb hivatkozások:

Kezdetekhez

Előfeltételek

A @azure/schema-registry-json csomag telepítése

Telepítse a JavaScripthez készült Azure Text Analytics ügyfélkódtárat a npm:

npm install @azure/schema-registry-json

Főbb fogalmak

JsonSchemaSerializer

Api-t biztosít a JSON-ba való szerializáláshoz és deszerializálásához egy üzenetbe burkolva, a sémaazonosítót tartalmazó tartalomtípus-mezővel. A @azure/sémaregisztrációs csomag SchemaRegistryClient használ sémaazonosítók lekéréséhez a sémadefinícióból vagy fordítva. A megadott API belső gyorsítótárral rendelkezik, hogy lehetőség szerint ne hívja meg a sémaregisztrációs szolgáltatást.

Üzenetek

Alapértelmezés szerint a szerializáló a következőképpen strukturált üzeneteket hoz létre:

  • data: JSON-adatokat tartalmazó bájttömb.

  • contentType: az alábbi formátumú sztring application/json+<Schema ID>, ahol a application/json rész azt jelzi, hogy az üzenet Json-szerializált hasznos adattal rendelkezik, a <Schema Id> része pedig az a sémaregisztrációs szolgáltatás sémaazonosítója, amely a hasznos adat szerializálásához használt sémához van hozzárendelve.

Nem minden üzenetkezelési szolgáltatás támogatja ugyanazt az üzenetstruktúrát. Az ilyen szolgáltatásokkal való integráció engedélyezéséhez a szerializáló az egyéni üzenetstruktúrákra is képes, ha a konstruktorban beállítja a messageAdapter lehetőséget egy megfelelő üzenetkészítővel és -fogyasztóval. Az Azure üzenetkezelési ügyfélkódtárai alapértelmezett adaptereket exportálnak az üzenettípusaikhoz.

Példák

Szerializálja és deszerializálja a @azure/event-hubsEventData

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);
});

A szerializáló nem ellenőrzi, hogy a deszerializált érték megegyezik-e a sémával, de lehetővé teszi az ilyen ellenőrzés implementálását. Az alkalmazás átadhat egy érvényesítési visszahívási függvényt az egyik lehetőségként a deszerializálási módszernek, ahol a sémaérvényesítés implementálható. Az ellenőrzés implementálásának módjáról a schemaRegistryJsonWithValidation mintában tájékozódhat.

Hibaelhárítás

A Json szerializáló a sémák regisztrálásához vagy lekérdezéséhez szükséges módon kommunikál a sémaregisztrációs szolgáltatással, és ezek a szolgáltatáshívások RestError-eredményezhetnek. A szerializálás vagy a deszerializálás sikertelensége esetén Error típusú hibák is megjelennek. A cause tulajdonság tartalmazza a JSON-elemzőből származó mögöttes hibát.

Fakitermelés

A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a AZURE_LOG_LEVEL környezeti változót info. Másik lehetőségként a naplózás futásidőben is engedélyezhető a setLogLevel meghívásával a @azure/logger:

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

Következő lépések

A kódtár használatára vonatkozó részletes példákért tekintse meg a mintákat könyvtárat.

Hozzájárulás

Ez a projekt üdvözli a hozzájárulásokat és javaslatokat. A legtöbb hozzájárulás megköveteli, hogy elfogadja a közreműködői licencszerződést (CLA), amely kimondja, hogy önnek joga van a hozzájárulás használatára, és valóban meg kell adnia nekünk a jogosultságokat a hozzájárulás használatára. A részletekért látogasson el https://cla.microsoft.com.

A lekéréses kérelem elküldésekor a CLA-robot automatikusan meghatározza, hogy meg kell-e adnia egy CLA-t, és megfelelően kell-e díszítenie a lekéréses kérelmet (például címkét, megjegyzést). Egyszerűen kövesse a robot utasításait. Ezt csak egyszer kell elvégeznie az összes adattárban a CLA használatával.

Ez a projekt elfogadta a Microsoft nyílt forráskódú magatartási kódexének . További információkért lásd a magatartási kódexével kapcsolatos gyakori kérdéseket, vagy további kérdésekkel vagy megjegyzésekkel forduljon opencode@microsoft.com.

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót, amelyből többet is megtudhat a kód összeállításáról és teszteléséről.

benyomások