Expand description
Runtime data structures for AsyncAPI 3.0 specifications
This crate provides Rust types that represent AsyncAPI 3.0 specification objects. These types are used by the proc macros to generate specifications at compile time and can also be constructed manually.
§Overview
The main types mirror the AsyncAPI 3.0 specification structure:
AsyncApiSpec- Root specification objectInfo- General API informationServer- Server connection detailsChannel- Communication channelsOperation- Send/receive operationsMessage- Message definitionsSchema- JSON Schema definitionsComponents- Reusable components
§Serialization
All types implement serde::Serialize and serde::Deserialize for JSON
serialization, following the AsyncAPI 3.0 specification’s JSON Schema.
§Example
use asyncapi_rust_models::*;
use indexmap::IndexMap;
// Create a simple AsyncAPI specification
let spec = AsyncApiSpec {
asyncapi: "3.0.0".to_string(),
info: Info {
title: "My API".to_string(),
version: "1.0.0".to_string(),
description: Some("A simple API".to_string()),
},
servers: None,
channels: None,
operations: None,
components: None,
};
// Serialize to JSON
let json = serde_json::to_string_pretty(&spec).unwrap();Structs§
- Async
ApiSpec - AsyncAPI 3.0 Specification
- Channel
- Communication channel
- Channel
Ref - Reference to a channel
- Components
- Reusable components
- Info
- API information object
- Message
- Message definition
- Message
Bindings - Protocol specific message bindings
- Mqtt
Last Will - Mqtt last will structure
- Mqtt
Message Bindings - Mqtt message bindings
- Mqtt
Operation Bindings - Mqtt operation bindings
- Mqtt
Server Bindings - Mqtt server binding
- Operation
- Operation (send or receive)
- Operation
Bindings - Protocol specific operation bindings
- Parameter
- Channel parameter definition
- Schema
Object - Schema object with all JSON Schema properties
- Server
- Server connection information
- Server
Bindings - Protocol specific server bindings
- Server
Variable - Server variable definition
Enums§
- Message
Ref - Reference to a message definition
- Mqtt
Binding NumValue - Represents mqtt binding properties which can be either a number or a json schema like sessionExpiryInterval or maximumPacketSize
- Mqtt
Response Topic - Mqtt response topic
- Operation
Action - Operation action type
- Schema
- JSON Schema object