pub struct OpenApiSpecGenerator { /* private fields */ }Expand description
OpenAPI specification generator from recorded traffic
Implementations§
Source§impl OpenApiSpecGenerator
impl OpenApiSpecGenerator
Sourcepub fn new(config: OpenApiGenerationConfig) -> Self
pub fn new(config: OpenApiGenerationConfig) -> Self
Create a new OpenAPI spec generator
Sourcepub async fn generate_from_exchanges(
&self,
exchanges: Vec<HttpExchange>,
) -> Result<OpenApiGenerationResult>
pub async fn generate_from_exchanges( &self, exchanges: Vec<HttpExchange>, ) -> Result<OpenApiGenerationResult>
Generate OpenAPI spec from HTTP exchanges
This method:
- Groups requests by path patterns (normalize paths with parameters)
- Analyzes request/response schemas using JSON schema inference
- Uses LLM to infer OpenAPI spec structure from patterns
- Generates paths, operations, schemas, and examples
Sourcepub fn group_by_path_pattern<'a>(
&self,
exchanges: &'a [HttpExchange],
) -> HashMap<String, Vec<&'a HttpExchange>>
pub fn group_by_path_pattern<'a>( &self, exchanges: &'a [HttpExchange], ) -> HashMap<String, Vec<&'a HttpExchange>>
Group exchanges by path pattern
Sourcepub fn infer_path_parameters<'a>(
&self,
path_groups: &HashMap<String, Vec<&'a HttpExchange>>,
) -> HashMap<String, Vec<&'a HttpExchange>>
pub fn infer_path_parameters<'a>( &self, path_groups: &HashMap<String, Vec<&'a HttpExchange>>, ) -> HashMap<String, Vec<&'a HttpExchange>>
Infer path parameters from path patterns
Detects patterns like /api/users/123 and /api/users/456 and normalizes
them to /api/users/{id}.
Sourcepub async fn infer_schemas(
&self,
exchanges: &[HttpExchange],
) -> Result<HashMap<String, Value>>
pub async fn infer_schemas( &self, exchanges: &[HttpExchange], ) -> Result<HashMap<String, Value>>
Infer JSON schemas from request/response bodies
Sourcepub fn json_to_schema(&self, value: &Value) -> Value
pub fn json_to_schema(&self, value: &Value) -> Value
Convert JSON value to JSON Schema
Sourcepub fn calculate_confidence_scores(
&self,
normalized_paths: &HashMap<String, Vec<&HttpExchange>>,
exchanges: &[HttpExchange],
) -> HashMap<String, ConfidenceScore>
pub fn calculate_confidence_scores( &self, normalized_paths: &HashMap<String, Vec<&HttpExchange>>, exchanges: &[HttpExchange], ) -> HashMap<String, ConfidenceScore>
Calculate confidence scores for inferred paths
Auto Trait Implementations§
impl Freeze for OpenApiSpecGenerator
impl !RefUnwindSafe for OpenApiSpecGenerator
impl Send for OpenApiSpecGenerator
impl Sync for OpenApiSpecGenerator
impl Unpin for OpenApiSpecGenerator
impl UnsafeUnpin for OpenApiSpecGenerator
impl !UnwindSafe for OpenApiSpecGenerator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more