Skip to main content

nacos_lib/
unregister.rs

1use async_trait::async_trait;
2use serde::Deserialize;
3use serde_json::Value;
4use to_url::ToUrl;
5use crate::client::{REQ_CLIENT};
6use crate::parse_url::ParseUrl;
7use crate::result::Result;
8
9const UNREGISTER: &str = "/nacos/v1/ns/instance";
10
11/// 注销实例
12#[allow(non_snake_case)]
13#[derive(Debug, Default, Clone, Deserialize, ToUrl)]
14pub struct UnRegister {
15    /// 服务实例IP
16    pub ip: String,
17    /// 服务实例port
18    pub port: String,
19    /// 命名空间ID
20    pub namespaceId: Option<String>,
21    /// 集群名
22    pub clusterName: Option<String>,
23    /// 服务名
24    pub serviceName: String,
25    /// 分组名
26    pub groupName: Option<String>,
27    /// 是否临时实例
28    pub ephemeral: Option<bool>,
29}
30
31#[async_trait]
32impl ParseUrl for UnRegister{}
33
34impl UnRegister {
35    pub async fn unregister(&self) -> Result<String> {
36        let url = self.parse_url(UNREGISTER).await;
37        let ok = REQ_CLIENT.delete(url).send().await?.text().await?;
38        Ok(ok)
39    }
40}