Struct apollo_client::conf::ApolloConfClient
source · pub struct ApolloConfClient { /* private fields */ }
Available on crate feature
conf
only.Expand description
Apollo configuration apis client.
Implementations§
source§impl ApolloConfClient
impl ApolloConfClient
sourcepub async fn cached_fetch(
&self,
request: CachedFetchRequest,
) -> ApolloClientResult<Properties>
pub async fn cached_fetch( &self, request: CachedFetchRequest, ) -> ApolloClientResult<Properties>
通过带缓存的Http接口从Apollo读取配置。 Ref
sourcepub async fn fetch(
&self,
request: FetchRequest,
) -> ApolloClientResult<FetchResponse>
pub async fn fetch( &self, request: FetchRequest, ) -> ApolloClientResult<FetchResponse>
通过不带缓存的Http接口从Apollo读取配置。 Ref
sourcepub async fn notify(
&self,
request: NotifyRequest,
) -> ApolloClientResult<Vec<Notification>>
pub async fn notify( &self, request: NotifyRequest, ) -> ApolloClientResult<Vec<Notification>>
应用感知配置更新。 Ref
sourcepub fn watch(
&self,
request: WatchRequest,
) -> impl Stream<Item = ApolloClientResult<HashMap<String, ApolloClientResult<FetchResponse>>>> + '_
pub fn watch( &self, request: WatchRequest, ) -> impl Stream<Item = ApolloClientResult<HashMap<String, ApolloClientResult<FetchResponse>>>> + '_
Watch the multi namespaces change, and fetch namespaces configuration when changed.
Return the Stream implemented futures_core::Stream, and the return value of poll_next
will never be None (Dead Loop).
The first poll_next
will fetch all namespaces, the remained will only fetch changed
namespaces.
§Panic
panic if request.namespace_names
is empty.
§Example
use apollo_client::conf::{meta::IpValue, requests::WatchRequest, ApolloConfClient};
use cidr_utils::cidr::IpCidr;
use futures_util::{pin_mut, stream::StreamExt};
use std::{error::Error, str::FromStr};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let client: ApolloConfClient = todo!();
let stream = client.watch(WatchRequest {
app_id: "SampleApp".to_string(),
namespace_names: vec![
"application.properties".into(),
"application.json".into(),
"application.yml".into(),
],
ip: Some(IpValue::HostCidr(IpCidr::from_str("172.16.0.0/16")?)),
..Default::default()
});
pin_mut!(stream);
// This is a dead loop, `next()` is returned when configuration has changed.
while let Some(response) = stream.next().await {
let _ = response?;
}
Ok(())
}
Auto Trait Implementations§
impl Freeze for ApolloConfClient
impl !RefUnwindSafe for ApolloConfClient
impl Send for ApolloConfClient
impl Sync for ApolloConfClient
impl Unpin for ApolloConfClient
impl !UnwindSafe for ApolloConfClient
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