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 new() -> OpenApiBuilder
pub fn new() -> OpenApiBuilder
Create a new builder.
Sourcepub fn title(self, title: impl Into<String>) -> OpenApiBuilder
pub fn title(self, title: impl Into<String>) -> OpenApiBuilder
Set the API title.
Sourcepub fn version(self, version: impl Into<String>) -> OpenApiBuilder
pub fn version(self, version: impl Into<String>) -> OpenApiBuilder
Set the API version.
Sourcepub fn description(self, description: impl Into<String>) -> OpenApiBuilder
pub fn description(self, description: impl Into<String>) -> OpenApiBuilder
Set the API description.
Sourcepub fn merge(self, spec: Value) -> Result<OpenApiBuilder, OpenApiError>
pub fn merge(self, spec: Value) -> Result<OpenApiBuilder, OpenApiError>
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>) -> OpenApiBuilder
pub fn merge_paths(self, paths: Vec<OpenApiPath>) -> OpenApiBuilder
Merge typed paths.
Sourcepub fn merge_schemas(
self,
schemas: Vec<OpenApiSchema>,
) -> Result<OpenApiBuilder, OpenApiError>
pub fn merge_schemas( self, schemas: Vec<OpenApiSchema>, ) -> Result<OpenApiBuilder, OpenApiError>
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
Source§impl Default for OpenApiBuilder
impl Default for OpenApiBuilder
Source§fn default() -> OpenApiBuilder
fn default() -> OpenApiBuilder
Returns the “default value” for a type. Read more
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