commit 7cc884d3f00e63d4b5e999c13e7835c1785e8160 Author: zhang chengzhi <3144712872@qq.com> Date: Mon Aug 5 17:23:42 2024 +0800 nacos-remote的nacos接口模块 diff --git a/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java b/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java new file mode 100644 index 0000000..e7375f5 --- /dev/null +++ b/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java @@ -0,0 +1,32 @@ +package com.muyu.common.nacos.remote; + +import com.dtflys.forest.annotation.*; +import com.muyu.common.core.constant.Constants; +import com.muyu.common.nacos.remote.interceptor.NacosNamespaceInterceptor; +import com.muyu.common.nacos.remote.req.ServiceListReq; +import com.muyu.common.nacos.remote.resp.ServiceListResp; + +/** + * @Author:zhangchengzhi + * @Package:com.muyu.common.nacos.remote + * @Project:cloud-common-nacos-remote + * @name:NacosServiceRemote + * @Date:2024/8/4 16:21 + */ +@BaseRequest( + baseURL = Constants.HTTP+"#{nacos.addr}/nacos/v1/ns/service", + interceptor = {NacosNamespaceInterceptor.class} +) +public interface NacosServiceRemote { + + @GetRequest( + url = "/list" + ) + public ServiceListResp serviceList(@Body ServiceListReq serviceListReq); + + + + + + +} diff --git a/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java b/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java new file mode 100644 index 0000000..d72120e --- /dev/null +++ b/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java @@ -0,0 +1,41 @@ +package com.muyu.common.nacos.remote.interceptor; + +import com.dtflys.forest.http.ForestRequest; +import com.dtflys.forest.interceptor.Interceptor; +import com.muyu.common.core.text.Convert; +import com.muyu.common.core.utils.StringUtils; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Value; + +@Log4j2 +public class NacosNamespaceInterceptor implements Interceptor { + + @Value("${nacos.namespace}") + private String namespaceId; + + + /** + * 该方法在请求发送之前被调用, 若返回false则不会继续发送请求 + * + * @Param request Forest请求对象 + */ + @Override + public boolean beforeExecute(ForestRequest req) { + if (StringUtils.isNotEmpty(namespaceId)){ + String reqNamespaceId = Convert.str(req.getQuery("namespaceId"), ""); + if (reqNamespaceId ==null){ + log.warn("本次请求nacos的namespace未携带,已添加[{}]",namespaceId); + req.addQuery("namespaceId",namespaceId); + }else { + if (StringUtils.equals(reqNamespaceId,namespaceId)){ + log.warn("本次请求nacos的namespaceId和项目ID不相符,现在已更改:[{}->{}]",reqNamespaceId); + req.addQuery("namespaceId",namespaceId); + } + } + } + return true; // 继续执行请求返回true + } + + +} + diff --git a/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java b/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java new file mode 100644 index 0000000..d41d6b3 --- /dev/null +++ b/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java @@ -0,0 +1,29 @@ +package com.muyu.common.nacos.remote.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author:zhangchengzhi + * @Package:com.muyu.common.nacos.remote.req + * @Project:cloud-common-nacos-remote + * @name:BaseReq + * @Date:2024/8/4 16:50 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class BaseReq { + + + /** + * 命名空间 + */ + + + private String namespaceId; + +} diff --git a/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java b/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java new file mode 100644 index 0000000..86fad2d --- /dev/null +++ b/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java @@ -0,0 +1,43 @@ +package com.muyu.common.nacos.remote.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @Author:zhangchengzhi + * @Package:com.muyu.common.nacos.remote.req + * @Project:cloud-common-nacos-remote + * @name:ServiceListReq + * @Date:2024/8/4 16:52 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ServiceListReq extends BaseReq{ + + /** + * 当前页码 + */ + +private int pageNo=1; + /** + * 分页大小 + */ + +private int pageSize=10; + + /** + * 分组名 + */ + + +private String groupName; + + + +} diff --git a/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java b/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java new file mode 100644 index 0000000..aa4adfb --- /dev/null +++ b/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java @@ -0,0 +1,36 @@ +package com.muyu.common.nacos.remote.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author:zhangchengzhi + * @Package:com.muyu.common.nacos.remote.resp + * @Project:cloud-common-nacos-remote + * @name:ServiceListResp + * @Date:2024/8/4 16:57 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServiceListResp { + /** + * 总条数 + */ + private int count; + + /** + * 服务列表 + */ + private List doms; + + + + + +} diff --git a/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..78b1bee --- /dev/null +++ b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.common.nacos.remote.interceptor.NacosNamespaceInterceptor