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 std::collections::HashMap;
// 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
- Operation
- Operation (send or receive)
- Parameter
- Channel parameter definition
- Schema
Object - Schema object with all JSON Schema properties
- Server
- Server connection information
- Server
Variable - Server variable definition
Enums§
- Message
Ref - Reference to a message definition
- Operation
Action - Operation action type
- Schema
- JSON Schema object