pub struct JsonResponse(pub Value);Expand description
JSON 响应包装器(项目主策略:默认 JSON 返回)
由于 Rust 孤儿规则限制,无法直接为 serde_json::Value 实现 IntoResponse。
本 newtype 包装 Value,使其可以直接作为 axum handler 返回值,
默认返回 JSON 响应(Content-Type: application/json; charset=utf-8)。
§用法
ⓘ
use sz_rust_http_facade::response::JsonResponse;
use serde_json::json;
async fn handler() -> JsonResponse {
JsonResponse(json!({"id": 1, "name": "alice"}))
}也可通过 From<Value> 转换:
ⓘ
use sz_rust_http_facade::response::JsonResponse;
use serde_json::json;
async fn handler() -> JsonResponse {
json!({"id": 1}).into()
}§注意
此类型始终返回 JSON 响应(项目主策略)。若需根据 Accept 头判断,
请使用 auto_respond 或 DefaultResponseType::Auto。
Tuple Fields§
§0: ValueTrait Implementations§
Source§impl Clone for JsonResponse
impl Clone for JsonResponse
Source§fn clone(&self) -> JsonResponse
fn clone(&self) -> JsonResponse
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 JsonResponse
impl Debug for JsonResponse
Source§impl From<Value> for JsonResponse
impl From<Value> for JsonResponse
Source§impl IntoResponse for JsonResponse
impl IntoResponse for JsonResponse
Source§fn into_response(self) -> Response
fn into_response(self) -> Response
Create a response.
Auto Trait Implementations§
impl Freeze for JsonResponse
impl RefUnwindSafe for JsonResponse
impl Send for JsonResponse
impl Sync for JsonResponse
impl Unpin for JsonResponse
impl UnsafeUnpin for JsonResponse
impl UnwindSafe for JsonResponse
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, S> Handler<IntoResponseHandler, S> for T
impl<T, S> Handler<IntoResponseHandler, S> for T
Source§fn call(
self,
_req: Request<Body>,
_state: S,
) -> <T as Handler<IntoResponseHandler, S>>::Future
fn call( self, _req: Request<Body>, _state: S, ) -> <T as Handler<IntoResponseHandler, S>>::Future
Call the handler with the given request.
Source§fn layer<L>(self, layer: L) -> Layered<L, Self, T, S>where
L: Layer<HandlerService<Self, T, S>> + Clone,
<L as Layer<HandlerService<Self, T, S>>>::Service: Service<Request<Body>>,
fn layer<L>(self, layer: L) -> Layered<L, Self, T, S>where
L: Layer<HandlerService<Self, T, S>> + Clone,
<L as Layer<HandlerService<Self, T, S>>>::Service: Service<Request<Body>>,
Apply a
tower::Layer to the handler. Read moreSource§fn with_state(self, state: S) -> HandlerService<Self, T, S>
fn with_state(self, state: S) -> HandlerService<Self, T, S>
Convert the handler into a
Service by providing the stateSource§impl<H, T> HandlerWithoutStateExt<T> for H
impl<H, T> HandlerWithoutStateExt<T> for H
Source§fn into_service(self) -> HandlerService<H, T, ()>
fn into_service(self) -> HandlerService<H, T, ()>
Convert the handler into a
Service and no state.Source§fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, ()>>
fn into_make_service(self) -> IntoMakeService<HandlerService<H, T, ()>>
Convert the handler into a
MakeService and no state. Read moreSource§fn into_make_service_with_connect_info<C>(
self,
) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, ()>, C>
fn into_make_service_with_connect_info<C>( self, ) -> IntoMakeServiceWithConnectInfo<HandlerService<H, T, ()>, C>
Convert the handler into a
MakeService which stores information
about the incoming connection and has no state. Read more