openapi_nexus_core/data/runtime_data.rs
1//! Runtime data for template generation
2
3use serde::{Deserialize, Serialize};
4use utoipa::openapi;
5
6/// Runtime data for template generation
7#[derive(Clone, Serialize, Deserialize)]
8pub struct RuntimeData {
9 pub base_path: String,
10}
11
12impl RuntimeData {
13 pub fn from_openapi(openapi: &openapi::OpenApi) -> Self {
14 let base_path = openapi
15 .servers
16 .as_ref()
17 .and_then(|servers| servers.first())
18 .map(|server| server.url.clone())
19 .unwrap_or_else(|| "http://localhost".to_string());
20 Self { base_path }
21 }
22}