apollo_router/services/
mod.rs1use std::sync::Arc;
4
5pub(crate) use self::execution::service::*;
6pub(crate) use self::query_planner::*;
7pub(crate) use self::subgraph_service::*;
8pub(crate) use self::supergraph::service::*;
9use crate::graphql::Request;
10use crate::http_ext;
11pub use crate::http_ext::TryIntoHeaderName;
12pub use crate::http_ext::TryIntoHeaderValue;
13pub use crate::query_planner::OperationKind;
14pub(crate) use crate::services::execution::Request as ExecutionRequest;
15pub(crate) use crate::services::execution::Response as ExecutionResponse;
16pub(crate) use crate::services::query_planner::Request as QueryPlannerRequest;
17pub(crate) use crate::services::query_planner::Response as QueryPlannerResponse;
18pub(crate) use crate::services::router::Request as RouterRequest;
19pub(crate) use crate::services::router::Response as RouterResponse;
20pub(crate) use crate::services::subgraph::Request as SubgraphRequest;
21pub(crate) use crate::services::subgraph::Response as SubgraphResponse;
22pub(crate) use crate::services::supergraph::Request as SupergraphRequest;
23pub(crate) use crate::services::supergraph::Response as SupergraphResponse;
24pub(crate) use crate::services::supergraph::service::SupergraphCreator;
25
26pub mod execution;
27pub(crate) mod external;
28pub(crate) mod hickory_dns_connector;
29pub(crate) mod http;
30pub(crate) mod layers;
31pub(crate) mod new_service;
32pub(crate) mod query_planner;
33pub mod router;
34pub mod subgraph;
35pub(crate) mod subgraph_service;
36pub mod supergraph;
37pub mod transport;
38
39impl AsRef<Request> for http_ext::Request<Request> {
40 fn as_ref(&self) -> &Request {
41 self.body()
42 }
43}
44
45impl AsRef<Request> for Arc<http_ext::Request<Request>> {
46 fn as_ref(&self) -> &Request {
47 self.body()
48 }
49}
50
51#[cfg(test)]
52pub(crate) fn apollo_key() -> Option<String> {
53 None
55}
56
57#[cfg(not(test))]
58pub(crate) fn apollo_key() -> Option<String> {
59 std::env::var("APOLLO_KEY").ok()
60}
61
62#[cfg(test)]
63pub(crate) fn apollo_graph_reference() -> Option<String> {
64 None
66}
67
68#[cfg(not(test))]
69pub(crate) fn apollo_graph_reference() -> Option<String> {
70 std::env::var("APOLLO_GRAPH_REF").ok()
71}
72
73pub(crate) const MULTIPART_DEFER_SPEC_PARAMETER: &str = "deferSpec";
75pub(crate) const MULTIPART_DEFER_SPEC_VALUE: &str = "20220824";
76pub(crate) const MULTIPART_DEFER_ACCEPT: &str = "multipart/mixed;deferSpec=20220824";
77pub(crate) const MULTIPART_DEFER_CONTENT_TYPE: &str =
78 "multipart/mixed;boundary=\"graphql\";deferSpec=20220824";
79
80pub(crate) const MULTIPART_SUBSCRIPTION_ACCEPT: &str = "multipart/mixed;subscriptionSpec=1.0";
81pub(crate) const MULTIPART_SUBSCRIPTION_CONTENT_TYPE: &str =
82 "multipart/mixed;boundary=\"graphql\";subscriptionSpec=1.0";
83pub(crate) const MULTIPART_SUBSCRIPTION_SPEC_PARAMETER: &str = "subscriptionSpec";
84pub(crate) const MULTIPART_SUBSCRIPTION_SPEC_VALUE: &str = "1.0";