---
schema_version: "1"
id: 0cb658eec914e3e20eef139ac9d1d74978bfc7d317c3804130c73de282538393
title: APIkit for AsyncAPI モジュールでの Avro スキーマの実装と検証
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/apikit/latest/apikit-asyncapi-avro-support.md
canonical_url: https://docs.mulesoft.com/jp/apikit/latest/apikit-asyncapi-avro-support
source_site: docs.mulesoft.com
content_type: documentation
content_hash: adf4ce12d414004873b54febc57afb2f9a9495bb5ecfc8246c2a2175d67b5ad4
description: MuleSoft Documentation Site
release: 4.x
latest: true
---
# APIkit for AsyncAPI モジュールでの Avro スキーマの実装と検証

APIkit for AsyncAPI では、メッセージの構造とエンコードを指定するための形式を定義するのに役立つデータシリアル化システムである、 [Avro](https://avro.apache.org/)​ がサポートされています。このモジュールは、設計フェーズでのメッセージの構造を示します。APIkit for AsyncAPI では、Avro スキーマを使用したメッセージの ​[DataSense](https://docs.mulesoft.com/studio/datasense-concept)​ もサポートされます。

## [](#スキーマ定義)スキーマ定義

Avro 仕様では、​`schemaFormat`​ の値を ​`application/vnd.apache.avro`​ として指定することで、その形式を定義します。

Avro 仕様では、スキーマのインライン記述、または Avro 形式でスキーマを記述する外部ドキュメントの参照がサポートされています。

- インライン定義
    
    publish:
      summary: inform details about person
      operationId: lightMeasured
      message:
        schemaFormat: 'application/vnd.apache.avro;version=1.9.0'
        payload:
          name: lightMeasured
          type: record
          fields:
            - name: lumens
              type: int
              example: 134
            - name: sentAt
              type: string
              logicalType: timestamp-millis
              10
              example: 1985-04-12T23:20:50.52Z
- Avro フラグメントへの参照
    
    channels:
     smartylighting.streetlights.1.0.event.{streetlightId}.monitor:
       publish:
         message:
           schemaFormat: application/vnd.apache.avro;version=1.9.0
           payload:
             $ref: /exchange\_modules/83589b9b-6630-4c28-985d-174ee9172661/lumenschema/1.0.0/lumens.json'

`lumens.json`​ ファイルは、Avro スキーマの仕様を提供します。

{
  "type": "record",
  "name": "lightMeasured",
  "fields": \[
    {"name": "lumens", "type": "int"},
    {"name": "sentAt", "type": {"type": "string", "logicalType": "timestamp-millis"}}
  \]
}

APIkit for AsyncAPI は、Avro メッセージがインラインで定義された非同期 API をサポートしています。APIkit for AsyncAPI は、Avro フラグメントを参照する API 仕様をサポートしていません。

## [](#avro-メッセージのエンコードと検証)Avro メッセージのエンコードと検証

Avro メッセージは、バイナリ形式またはテキスト (JSON) 形式でエンコードされます。仕様では、​`contentType`​ または ​`defaultContentType`​ の値が提供されます。

APIkit for AsyncAPI は、テキスト (JSON) でエンコードされたメッセージを検証しますが、バイナリでエンコードされたメッセージは検証しません。