Dela via


Azure Schema Registry Json Serializer-klientbibliotek för JavaScript – version 1.0.0

Azure Schema Registry är en schemalagringsplatstjänst som hanteras av Azure Event Hubs och som tillhandahåller schemalagring, versionshantering och hantering. Det här paketet innehåller en Json-serialiserare som kan serialisera och deserialisera nyttolaster som innehåller Json-serialiserade data.

Nyckellänkar:

Komma igång

Förutsättningar

Installera @azure/schema-registry-json-paketet

Installera Azure Text Analytics-klientbiblioteket för JavaScript med npm:

npm install @azure/schema-registry-json

Viktiga begrepp

JsonSchemaSerializer

Tillhandahåller API för serialisering till och deserialisera från JSON omslutet i ett meddelande med ett innehållstypfält som innehåller schema-ID. Använder SchemaRegistryClient från paketet @azure/schema-registry för att hämta schema-ID:t från schemadefinitionen eller tvärtom. Det angivna API:et har en intern cache för att undvika att anropa schemaregistertjänsten när det är möjligt.

Meddelanden

Som standard skapar serialiseraren meddelanden som är strukturerade på följande sätt:

  • data: en bytematris som innehåller JSON-data.

  • contentType: en sträng i följande format application/json+<Schema ID> där den application/json delen signalerar att meddelandet har en Json-serialiserad nyttolast och den <Schema Id> delen är schema-ID:t som schemaregistertjänsten tilldelade schemat som användes för att serialisera nyttolasten.

Alla meddelandetjänster stöder inte samma meddelandestruktur. För att aktivera integrering med sådana tjänster kan serialiseraren agera på anpassade meddelandestrukturer genom att ange alternativet messageAdapter i konstruktorn med en motsvarande meddelandeproducent och konsument. Azure-meddelandeklientbibliotek exporterar standardkort för sina meddelandetyper.

Exempel

Serialisera och deserialisera en @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);
});

Serialiseraren kontrollerar inte om det deserialiserade värdet matchar schemat, men tillhandahåller ett alternativ för att implementera en sådan validering. Programmet kan skicka en valideringsåteranropsfunktion som ett av alternativen till metoden deserialisera där schemavalidering kan implementeras. Om du vill se hur verifieringen kan implementeras kan du kolla in schemaRegistryJsonWithValidation exempel.

Felsökning

Json-serialiseraren kommunicerar med tjänsten Schema Registry efter behov för att registrera eller fråga efter scheman och dessa tjänstanrop kan utlösa en RestError-. Dessutom utlöses fel av typen Error när serialisering eller deserialisering misslyckas. Egenskapen cause innehåller det underliggande felet som utlöstes från JSON-parsern.

Skogsavverkning

Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:

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

setLogLevel("info");

Nästa steg

Ta en titt på exempel katalog för detaljerade exempel på hur du använder det här biblioteket.

Bidragande

Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns i https://cla.microsoft.com.

När du skickar en pull-begäran avgör en CLA-robot automatiskt om du behöver tillhandahålla ett CLA och dekorera PR på rätt sätt (t.ex. etikett, kommentar). Följ bara anvisningarna från roboten. Du behöver bara göra detta en gång för alla lagringsplatser med vår CLA.

Det här projektet har antagit Microsoft Open Source Code of Conduct. Mer information finns i vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.

Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.

visningar