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 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.