Skip to main content

EndpointMetadata

Struct EndpointMetadata 

Source
pub struct EndpointMetadata {
Show 16 fields pub id: EndpointId, pub method: Method, pub path: RoutePath, pub success_status: StatusCode, pub authorization: AuthorizationPolicy, pub rate_limit: Option<RateLimitPolicy>, pub timeout: Option<Duration>, pub body_limit: Option<BodyLimitPolicy>, pub cors: Option<CorsPolicy>, pub csrf: CsrfPolicy, pub security_headers: Option<SecurityHeadersPolicy>, pub response_cache: Option<ResponseCachePolicy>, pub contracts: EndpointContracts, pub documentation: OperationDocumentation, pub telemetry: TelemetryPolicy, pub tags: Vec<String>,
}
Expand description

Portable endpoint definition consumed by framework, auth, docs, and telemetry adapters.

Fields§

§id: EndpointId

Stable endpoint identity used by diagnostics and API documentation.

§method: Method

HTTP method.

§path: RoutePath

Portable route path.

§success_status: StatusCode

Successful response status used when a handler returns plain output.

§authorization: AuthorizationPolicy

Authentication and authorization requirement.

§rate_limit: Option<RateLimitPolicy>

Optional request rate limit.

§timeout: Option<Duration>

Optional request timeout.

§body_limit: Option<BodyLimitPolicy>

Optional maximum encoded request body size.

§cors: Option<CorsPolicy>

Optional cross-origin policy.

§csrf: CsrfPolicy

Cross-site request-forgery requirement.

§security_headers: Option<SecurityHeadersPolicy>

Optional security response headers. Secure defaults are enabled initially.

§response_cache: Option<ResponseCachePolicy>

Optional HTTP response caching policy.

§contracts: EndpointContracts

Logical validation and response schema references.

§documentation: OperationDocumentation

Provider-neutral operation documentation.

§telemetry: TelemetryPolicy

Provider-neutral tracing and metrics instructions.

§tags: Vec<String>

Documentation and grouping tags.

Implementations§

Source§

impl EndpointMetadata

Source

pub fn new( id: impl Into<String>, method: Method, path: RoutePath, ) -> SoapResult<Self>

Creates a public endpoint with secure headers and telemetry enabled.

Source

pub fn success_status(self, status: StatusCode) -> SoapResult<Self>

Sets a successful 2xx response status.

Source

pub fn authorize(self, policy: AuthorizationPolicy) -> SoapResult<Self>

Sets and validates the authorization policy.

Source

pub fn rate_limit(self, policy: RateLimitPolicy) -> Self

Sets the rate-limit policy.

Source

pub fn timeout(self, timeout: Duration) -> SoapResult<Self>

Sets a non-zero request timeout.

Source

pub fn body_limit(self, policy: BodyLimitPolicy) -> Self

Limits the encoded request body before extraction.

Source

pub fn cors(self, policy: CorsPolicy) -> Self

Sets the cross-origin policy.

Source

pub const fn require_csrf(self) -> Self

Requires a CSRF adapter to validate the request.

Source

pub fn security_headers(self, policy: SecurityHeadersPolicy) -> Self

Replaces the security response-header policy.

Source

pub fn without_security_headers(self) -> Self

Explicitly delegates every security response header to the application.

Source

pub fn response_cache(self, policy: ResponseCachePolicy) -> SoapResult<Self>

Sets an HTTP response caching policy.

Source

pub fn request_contract(self, contract: RequestContract) -> Self

Adds or replaces a request contract for one location.

Source

pub fn response_contract(self, contract: ResponseContract) -> Self

Adds or replaces a response contract for one status.

Source

pub fn documentation(self, documentation: OperationDocumentation) -> Self

Replaces operation documentation.

Source

pub fn telemetry(self, telemetry: TelemetryPolicy) -> Self

Replaces endpoint telemetry instructions.

Source

pub fn tag(self, tag: impl Into<String>) -> SoapResult<Self>

Adds a non-empty documentation tag once.

Source

pub fn required_enforcement_capabilities( &self, ) -> Vec<HttpEnforcementCapability>

Returns runtime enforcement that must be supplied by framework extensions before this endpoint can be served.

Body limits, deadlines, security response headers, and cache headers are translated directly by framework adapters. Telemetry remains observational and is therefore not an enforcement capability.

Source

pub fn validate(&self) -> SoapResult<()>

Validates invariants after direct public-field construction or mutation.

Trait Implementations§

Source§

impl Clone for EndpointMetadata

Source§

fn clone(&self) -> EndpointMetadata

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EndpointMetadata

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for EndpointMetadata

Source§

impl PartialEq for EndpointMetadata

Source§

fn eq(&self, other: &EndpointMetadata) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EndpointMetadata

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.