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(())
}Trait Implementations§
Source§impl Clone for ApolloConfClient
impl Clone for ApolloConfClient
Source§fn clone(&self) -> ApolloConfClient
fn clone(&self) -> ApolloConfClient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto 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