elif_openapi/lib.rs
1/*!
2# elif-openapi
3
4OpenAPI 3.0 specification generation for elif.rs framework.
5
6This crate provides automatic API documentation generation from annotated Rust code,
7with support for interactive Swagger UI and multiple export formats.
8
9## Features
10
11- Automatic OpenAPI 3.0 specification generation
12- Route and endpoint discovery from framework types
13- Request/response schema extraction from Rust structs
14- Authentication scheme documentation
15- Interactive Swagger UI integration
16- Multiple export formats (Postman, Insomnia)
17
18## Usage
19
20```rust,no_run
21use elif_openapi::{OpenApiGenerator, OpenApiConfig};
22
23let mut generator = OpenApiGenerator::new(OpenApiConfig::default());
24let routes = vec![]; // Your route metadata here
25let spec = generator.generate(&routes).unwrap();
26```
27*/
28
29// Re-export main types
30pub use crate::{
31 config::OpenApiConfig,
32 error::{OpenApiError, OpenApiResult},
33 generator::OpenApiGenerator,
34 macros::OpenApiSchema,
35 schema::{SchemaGenerator, TypeSchema},
36 specification::OpenApiSpec,
37 swagger::SwaggerUi,
38};
39
40// Re-export the derive macro from the proc-macro crate
41pub use elif_openapi_derive::OpenApiSchema;
42
43// Core modules
44pub mod config;
45pub mod error;
46pub mod generator;
47pub mod specification;
48
49// Schema generation
50pub mod macros;
51pub mod schema;
52
53// Route and endpoint discovery
54pub mod discovery;
55pub mod endpoints;
56
57// Export functionality
58pub mod export;
59
60// Interactive documentation
61pub mod swagger;
62
63// Utilities
64pub mod utils;
65
66// Test utilities
67#[cfg(test)]
68mod test_utils;