次の方法で共有


JavaScript 用 Azure Schema Registry Json Serializer クライアント ライブラリ - バージョン 1.0.0-beta.1

Azure Schema Registry は、スキーマ ストレージ、バージョン管理、管理を提供する、Azure Event Hubsによってホストされるスキーマ リポジトリ サービスです。 このパッケージは、Json シリアル化されたデータを含むペイロードをシリアル化および逆シリアル化できる Json シリアライザーを提供します。

主要リンク:

作業の開始

前提条件

@azure/schema-registry-json パッケージのインストール

を使用して、JavaScript 用の Azure Text Analytics クライアント ライブラリをnpmインストールします。

npm install @azure/schema-registry-json

主要な概念

JsonSerializer

スキーマ ID を含むコンテンツ タイプ フィールドを使用して、メッセージにラップされた JSON に対してシリアル化および逆シリアル化する API を提供します。 @azure/スキーマ レジストリ パッケージから を使用SchemaRegistryClientして、スキーマ定義からスキーマ ID を取得するか、またはその逆を行います。 提供される API には内部キャッシュがあり、可能な場合はスキーマ レジストリ サービスの呼び出しを回避します。

メッセージ

既定では、シリアライザーは次のように構造化されたメッセージを作成します。

  • data: JSON データを含むバイト配列。

  • contentType: 次の形式application/json+<Schema ID>application/jsonの文字列。この部分は、このメッセージに Json シリアル化されたペイロードがあることを通知し、<Schema Id>部分は、このペイロードのシリアル化に使用されるスキーマに割り当てられたスキーマ レジストリ サービスのスキーマ ID です。

すべてのメッセージング サービスが同じメッセージ構造をサポートしているわけではありません。 このようなサービスとの統合を有効にするために、シリアライザーは、対応するメッセージ プロデューサーとコンシューマーを使用してコンストラクターで オプションを messageAdapter 設定することで、カスタム メッセージ構造に対して動作できます。 Azure メッセージング クライアント ライブラリは、メッセージの種類の既定のアダプターをエクスポートします。

の をシリアル化および逆シリアル化する@azure/event-hubsEventData

const { DefaultAzureCredential } = require("@azure/identity");
const { createEventDataAdapter } = require("@azure/event-hubs");
const { SchemaRegistryClient } = require("@azure/schema-registry");
const { JsonSerializer } = require("@azure/schema-registry-json");

const client = new SchemaRegistryClient(
  "<fully qualified namespace>",
  new DefaultAzureCredential()
);
const serializer = new JsonSerializer(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);

シリアライザーは、逆シリアル化された値がスキーマと一致するかどうかをチェックしませんが、このような検証を実装するオプションを提供します。 アプリケーションは、スキーマ検証を実装できる逆シリアル化メソッドにオプションの 1 つとして検証コールバック関数を渡すことができます。 検証がどのように実装されるかを確認するには、サンプルを schemaRegistryJsonWithValidation チェックアウトしてください。

トラブルシューティング

Json シリアライザーは、スキーマを登録またはクエリするために必要に応じて スキーマ レジストリ サービスと通信し、これらのサービス呼び出しで RestError がスローされる可能性があります。 さらに、シリアル化または逆シリアル化に失敗すると、型 Error のエラーがスローされます。 プロパティには cause 、JSON パーサーからスローされた基になるエラーが含まれます。

ログの記録

ログの記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、環境変数 AZURE_LOG_LEVELinfo に設定します。 または、@azure/loggersetLogLevel を呼び出して、実行時にログ記録を有効にすることもできます。

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

setLogLevel("info");

次のステップ

このライブラリの使用方法の詳細な例については、 サンプル ディレクトリを参照してください。

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。

このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。

インプレッション数