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:
- kod źródłowy
- pakiet (npm)
- Dokumentacja referencyjna interfejsu API
- przykładów
Wprowadzenie
- wersje Node.js LTS
Warunki wstępne
- subskrypcji platformy Azure
- Istniejący zasób rejestru schematów
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 formatuapplication/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-hubs
EventData
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.
Powiązane projekty
- zestaw SDK platformy Microsoft Azure dla języka Javascript
Azure SDK for JavaScript