Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
- En Azure-prenumeration
 - En befintlig schemaregisterresurs
 
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 formatapplication/json+<Schema ID>där denapplication/jsondelen 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.
Relaterade projekt
              
              
            
Azure SDK for JavaScript