Udostępnij za pośrednictwem


Biblioteka klienta serializatora Json usługi Azure Schema Registry dla języka JavaScript — wersja 1.0.0

Azure Schema Registry to usługa repozytorium schematów hostowana przez usługę Azure Event Hubs, zapewniając magazyn schematów, przechowywanie wersji i zarządzanie nimi. Ten pakiet zapewnia serializator Json umożliwiający serializowanie i deserializacji ładunków zawierających dane serializowane w formacie Json.

Kluczowe linki:

Wprowadzenie

Warunki wstępne

Instalowanie pakietu @azure/schema-registry-json

Zainstaluj bibliotekę klienta analizy tekstu platformy Azure dla języka JavaScript przy użyciu npm:

npm install @azure/schema-registry-json

Kluczowe pojęcia

JsonSchemaSerializer

Udostępnia interfejs API serializacji do i deserializacji z formatu JSON opakowanego w komunikat z polem typu zawartości zawierającym identyfikator schematu. Używa SchemaRegistryClient z pakietu @azure/schema-registry w celu pobrania identyfikatorów schematu z definicji schematu lub na odwrót. Podany interfejs API ma wewnętrzną pamięć podręczną, aby uniknąć wywoływania usługi rejestru schematów, gdy jest to możliwe.

Wiadomości

Domyślnie serializator tworzy komunikaty ustrukturyzowane w następujący sposób:

  • data: tablica bajtów zawierająca dane JSON.

  • contentType: ciąg następującego formatu application/json+<Schema ID>, w którym część application/json sygnalizuje, że ten komunikat ma ładunek serializowany w formacie Json, a część <Schema Id> jest identyfikatorem schematu, który jest przypisany do schematu używanego do serializacji tego ładunku.

Nie wszystkie usługi obsługi komunikatów obsługują tę samą strukturę komunikatów. Aby umożliwić integrację z takimi usługami, serializator może działać na niestandardowych strukturach komunikatów, ustawiając opcję messageAdapter w konstruktorze z odpowiednim producentem i konsumentem komunikatów. Biblioteki klienta obsługi komunikatów platformy Azure eksportują domyślne karty dla ich typów komunikatów.

Przykłady

Serializowanie i deserializowanie @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);
});

Serializator nie sprawdza, czy wartość deserializowana jest zgodna ze schematem, ale zapewnia opcję zaimplementowania takiej weryfikacji. Aplikacja może przekazać funkcję wywołania zwrotnego weryfikacji jako jedną z opcji metody deserializacji, w której można zaimplementować walidację schematu. Aby zobaczyć, jak można zaimplementować walidację, zapoznaj się z przykładem schemaRegistryJsonWithValidation.

Rozwiązywanie problemów

Serializator JSON komunikuje się z usługą rejestru schematów zgodnie z potrzebami w celu zarejestrowania schematów lub wykonywania zapytań, a te wywołania usługi mogą zgłosić RestError. Ponadto błędy typu Error zostaną rzucone w przypadku niepowodzenia serializacji lub deserializacji. Właściwość cause będzie zawierać błąd źródłowy, który został zgłoszony z analizatora JSON.

Wyrąb

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

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

setLogLevel("info");

Następne kroki

Zapoznaj się z przykładami katalogu, aby zapoznać się ze szczegółowymi przykładami dotyczącymi korzystania z tej biblioteki.

Przyczyniając się

Ten projekt z zadowoleniem przyjmuje wkład i sugestie. Większość kontrybucja wymaga zgody na umowę licencyjną współautora (CLA), deklarując, że masz prawo, a w rzeczywistości przyznaj nam prawa do korzystania z twojego wkładu. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Po przesłaniu żądania ściągnięcia bot CLA automatycznie określi, czy musisz podać cla i odpowiednio ozdobić żądanie ściągnięcia (np. etykieta, komentarz). Po prostu postępuj zgodnie z instrukcjami dostarczonymi przez bota. Należy to zrobić tylko raz we wszystkich repozytoriach przy użyciu naszego CLA.

Ten projekt przyjął kodeks postępowania firmy Microsoft typu open source. Aby uzyskać więcej informacji, zobacz Kodeks postępowania — często zadawane pytania lub skontaktuj się z opencode@microsoft.com z dodatkowymi pytaniami lub komentarzami.

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik dotyczący współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.

wrażenia