pub struct OpenApiBuilder { /* private fields */ }Expand description
Builder for composing OpenAPI specs from multiple sources.
§Example
ⓘ
use server_less::OpenApiBuilder;
let spec = OpenApiBuilder::new()
.title("My API")
.version("1.0.0")
.merge(UserService::openapi_spec())
.merge(OrderService::openapi_spec())
.build()?;§Conflict Resolution
- Paths: Last write wins (later
merge()calls override earlier ones for same path+method). - Schemas: Identical schemas are deduplicated; different schemas with same name cause an error.
Implementations§
Source§impl OpenApiBuilder
impl OpenApiBuilder
Sourcepub fn description(self, description: impl Into<String>) -> Self
pub fn description(self, description: impl Into<String>) -> Self
Set the API description.
Sourcepub fn merge(self, spec: Value) -> Result<Self>
pub fn merge(self, spec: Value) -> Result<Self>
Merge an OpenAPI spec (as JSON value).
This extracts paths and schemas from the spec and merges them.
§Conflict Resolution
- Paths: Last write wins
- Schemas: Identical schemas dedupe, different schemas error
Sourcepub fn merge_paths(self, paths: Vec<OpenApiPath>) -> Self
pub fn merge_paths(self, paths: Vec<OpenApiPath>) -> Self
Merge typed paths.
Sourcepub fn merge_schemas(self, schemas: Vec<OpenApiSchema>) -> Result<Self>
pub fn merge_schemas(self, schemas: Vec<OpenApiSchema>) -> Result<Self>
Merge typed schemas.
Trait Implementations§
Source§impl Clone for OpenApiBuilder
impl Clone for OpenApiBuilder
Source§fn clone(&self) -> OpenApiBuilder
fn clone(&self) -> OpenApiBuilder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OpenApiBuilder
impl Debug for OpenApiBuilder
Auto Trait Implementations§
impl Freeze for OpenApiBuilder
impl RefUnwindSafe for OpenApiBuilder
impl Send for OpenApiBuilder
impl Sync for OpenApiBuilder
impl Unpin for OpenApiBuilder
impl UnsafeUnpin for OpenApiBuilder
impl UnwindSafe for OpenApiBuilder
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