#[non_exhaustive]
pub struct Response { pub response: Response<ResponseStream>, pub context: Context, }

Fields (Non-exhaustive)ยง

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
ยงresponse: Response<ResponseStream>ยงcontext: Context

Implementationsยง

sourceยง

impl Response

source

pub fn builder() -> NewResponseBuilder

This is the constructor (or builder) to use when constructing a real Response..

Required parameters are required in non-testing code to create a Response..

sourceยง

impl Response

source

pub fn fake_builder() -> FakeNewResponseBuilder

This is the constructor (or builder) to use when constructing a โ€œfakeโ€ Response.

This does not enforce the provision of the data that is required for a fully functional Response. Itโ€™s usually enough for testing, when a fully constructed Response is difficult to construct and not required for the purposes of the test.

In addition, fake responses are expected to be valid, and will panic if given invalid values.

sourceยง

impl Response

source

pub fn fake_stream_builder() -> FakeStreamNewResponseBuilder

This is the constructor (or builder) to use when constructing a โ€œfakeโ€ Response stream.

This does not enforce the provision of the data that is required for a fully functional Response. Itโ€™s usually enough for testing, when a fully constructed Response is difficult to construct and not required for the purposes of the test.

In addition, fake responses are expected to be valid, and will panic if given invalid values.

sourceยง

impl Response

source

pub fn error_builder() -> ErrorNewResponseBuilder

This is the constructor (or builder) to use when constructing a Response that represents a global error. It has no path and no response data. This is useful for things such as authentication errors.

sourceยง

impl Response

source

pub async fn next_response(&mut self) -> Option<Response>

source

pub fn map<F>(self, f: F) -> Response

source

pub fn map_stream<F>(self, f: F) -> Self
where F: 'static + Send + FnMut(Response) -> Response,

Returns a new supergraph response where each graphql::Response is mapped through f.

In supergraph and execution services, the service response contains not just one GraphQL response but a stream of them, in order to support features such as @defer. This method uses futures::stream::StreamExt::map to map over each item in the stream.

ยงExample
use apollo_router::services::supergraph;
use apollo_router::layers::ServiceExt as _;
use tower::ServiceExt as _;

struct ExamplePlugin;

#[async_trait::async_trait]
impl apollo_router::plugin::Plugin for ExamplePlugin {
    // โ€ฆ
    fn supergraph_service(&self, inner: supergraph::BoxService) -> supergraph::BoxService {
        inner
            .map_response(|supergraph_response| {
                supergraph_response.map_stream(|graphql_response| {
                    // Something interesting here
                    graphql_response
                })
            })
            .boxed()
    }
}

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> Any for T
where T: Any,

sourceยง

fn into_any(self: Box<T>) -> Box<dyn Any>

sourceยง

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

sourceยง

fn type_name(&self) -> &'static str

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> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

sourceยง

impl<T> FutureExt for T

sourceยง

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
sourceยง

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
sourceยง

impl<T> Instrument for T

sourceยง

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
sourceยง

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
sourceยง

impl<T> Instrument for T

sourceยง

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
sourceยง

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

sourceยง

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
sourceยง

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

sourceยง

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
sourceยง

impl<T> Same for T

ยง

type Output = T

Should always be Self
sourceยง

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

ยง

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

ยง

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.
sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

sourceยง

fn vzip(self) -> V

sourceยง

impl<T> WithSubscriber for T

sourceยง

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
sourceยง

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
sourceยง

impl<T> WithSubscriber for T

sourceยง

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
sourceยง

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more