pub struct OpenApiServer {
pub spec_location: OpenApiSpecLocation,
pub registry: Arc<ToolRegistry>,
pub http_client: HttpClient,
pub base_url: Option<Url>,
}Fields§
§spec_location: OpenApiSpecLocation§registry: Arc<ToolRegistry>§http_client: HttpClient§base_url: Option<Url>Implementations§
Source§impl OpenApiServer
impl OpenApiServer
pub fn new(spec_location: OpenApiSpecLocation) -> Self
Sourcepub fn with_base_url(
spec_location: OpenApiSpecLocation,
base_url: Url,
) -> Result<Self, OpenApiError>
pub fn with_base_url( spec_location: OpenApiSpecLocation, base_url: Url, ) -> Result<Self, OpenApiError>
Create a new server with a base URL for API calls
§Errors
Returns an error if the base URL is invalid
Sourcepub async fn load_openapi_spec(&mut self) -> Result<(), OpenApiError>
pub async fn load_openapi_spec(&mut self) -> Result<(), OpenApiError>
Load the OpenAPI specification from the configured location
§Errors
Returns an error if the spec cannot be loaded or registered
Sourcepub fn register_spec(&mut self, spec: OpenApiSpec) -> Result<(), OpenApiError>
pub fn register_spec(&mut self, spec: OpenApiSpec) -> Result<(), OpenApiError>
Register a spec into the registry. This requires exclusive access to the server.
§Errors
Returns an error if the registry is already shared or if spec registration fails
Sourcepub fn tool_count(&self) -> usize
pub fn tool_count(&self) -> usize
Get the number of registered tools
Sourcepub fn get_tool_names(&self) -> Vec<String>
pub fn get_tool_names(&self) -> Vec<String>
Get all tool names
Sourcepub fn get_registry_stats(&self) -> ToolRegistryStats
pub fn get_registry_stats(&self) -> ToolRegistryStats
Get registry statistics
Sourcepub fn validate_registry(&self) -> Result<(), OpenApiError>
pub fn validate_registry(&self) -> Result<(), OpenApiError>
Trait Implementations§
Source§impl Clone for OpenApiServer
impl Clone for OpenApiServer
Source§fn clone(&self) -> OpenApiServer
fn clone(&self) -> OpenApiServer
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 ServerHandler for OpenApiServer
impl ServerHandler for OpenApiServer
fn get_info(&self) -> InitializeResult
async fn list_tools( &self, _request: Option<PaginatedRequestParam>, _context: RequestContext<RoleServer>, ) -> Result<ListToolsResult, ErrorData>
async fn call_tool( &self, request: CallToolRequestParam, _context: RequestContext<RoleServer>, ) -> Result<CallToolResult, ErrorData>
fn ping( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn initialize( &self, request: InitializeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<InitializeResult, ErrorData>> + Send
fn complete( &self, request: CompleteRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CompleteResult, ErrorData>> + Send
fn set_level( &self, request: SetLevelRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn get_prompt( &self, request: GetPromptRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetPromptResult, ErrorData>> + Send
fn list_prompts( &self, request: Option<PaginatedRequestParam>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListPromptsResult, ErrorData>> + Send
fn list_resources( &self, request: Option<PaginatedRequestParam>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourcesResult, ErrorData>> + Send
fn list_resource_templates( &self, request: Option<PaginatedRequestParam>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourceTemplatesResult, ErrorData>> + Send
fn read_resource( &self, request: ReadResourceRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ReadResourceResult, ErrorData>> + Send
fn subscribe( &self, request: SubscribeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn unsubscribe( &self, request: UnsubscribeRequestParam, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + Send
fn on_cancelled( &self, notification: CancelledNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + Send
fn on_progress( &self, notification: ProgressNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + Send
fn on_initialized( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + Send
fn on_roots_list_changed( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + Send
Auto Trait Implementations§
impl Freeze for OpenApiServer
impl !RefUnwindSafe for OpenApiServer
impl Send for OpenApiServer
impl Sync for OpenApiServer
impl Unpin for OpenApiServer
impl !UnwindSafe for OpenApiServer
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
fn handle_request( &self, request: <R as ServiceRole>::PeerReq, context: RequestContext<R>, ) -> Pin<Box<dyn Future<Output = Result<<R as ServiceRole>::Resp, ErrorData>> + Send + '_>>
fn handle_notification( &self, notification: <R as ServiceRole>::PeerNot, context: NotificationContext<R>, ) -> Pin<Box<dyn Future<Output = Result<(), ErrorData>> + Send + '_>>
fn get_info(&self) -> <R as ServiceRole>::Info
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
async fn handle_request( &self, request: <RoleServer as ServiceRole>::PeerReq, context: RequestContext<RoleServer>, ) -> Result<<RoleServer as ServiceRole>::Resp, ErrorData>
async fn handle_notification( &self, notification: <RoleServer as ServiceRole>::PeerNot, context: NotificationContext<RoleServer>, ) -> Result<(), ErrorData>
fn get_info(&self) -> <RoleServer as ServiceRole>::Info
Source§impl<S> ServiceExt<RoleServer> for Swhere
S: Service<RoleServer>,
impl<S> ServiceExt<RoleServer> for Swhere
S: Service<RoleServer>,
fn serve_with_ct<T, E, A>( self, transport: T, ct: CancellationToken, ) -> impl Future<Output = Result<RunningService<RoleServer, S>, ServerInitializeError<E>>> + Send
Source§fn into_dyn(self) -> Box<dyn DynService<R>>
fn into_dyn(self) -> Box<dyn DynService<R>>
Convert this service to a dynamic boxed service Read more