This is an automated email from the ASF dual-hosted git repository.

dengliming pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-shenyu-client-golang.git


The following commit(s) were added to refs/heads/main by this push:
     new f27d0ad  [feature: add nacos_client_test.go & adjust README] (#24)
f27d0ad is described below

commit f27d0ad55a4fc130995a0486e870e7c343c0d532
Author: Lisandro <[email protected]>
AuthorDate: Mon Jul 4 17:15:17 2022 +0800

    [feature: add nacos_client_test.go & adjust README] (#24)
    
    * [feature: add nacos_client_test.go & adjust README]
    
    * [feature: Adjust nacos_client]
    
    * [feature: Adjust nacos_client]
    
    Co-authored-by: lishuo <[email protected]>
---
 README.md                                 |  51 ++++++-
 README_CN.md                              |  55 +++++--
 example/nacos_client/main.go              |  11 +-
 example/nacos_client/nacos_client_test.go | 230 ++++++++++++++++++++++++++++++
 4 files changed, 327 insertions(+), 20 deletions(-)

diff --git a/README.md b/README.md
index 8064ab0..9cbb877 100644
--- a/README.md
+++ b/README.md
@@ -185,20 +185,57 @@ finish register metadata ,the result is-> true
 }
 ```
 
-**4.use client to invoke RegisterNacosInstance**
+**4. Get shenyu nacos client**
 ```go
-    client, err := nacos_client.NewNacosClient(ncp)
-        if err != nil {
-        logger.Fatal("create nacos client error : %+V", err)
-}
+    sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+    result, createResult, err := sdkClient.NewClient(ncp)
+        if !createResult && err != nil {
+        logger.Fatal("Create nacos client error : %+V", err)
+    }
+
+       nc := &nacos_client.ShenYuNacosClient{
+               NacosClient: result.(*naming_client.NamingClient),
+       }
+```
+
 
-    registerResult, err := nacos_client.RegisterNacosInstance(client, 
nacosRegisterInstance)
+**5.Use client to invoke RegisterNacosInstance**
+```go
+    registerResult, err := nc.RegisterServiceInstance(nacosRegisterInstance)
         if !registerResult && err != nil {
-        logger.Fatal("Register nacos Instance error : %+V", err)
+    logger.Fatal("Register nacos Instance error : %+V", err)
+}
+        //do your logic
+```
+
+**6.Use client to invoke DeregisterServiceInstance**
+```go
+//DeregisterServiceInstance start
+    deregisterInstanceParam := vo.DeregisterInstanceParam{
+    Ip:          "10.0.0.10",
+    Port:        8848,
+    ServiceName: "demo.go",
+    Ephemeral:   true,
+    //Cluster:     "cluster-a", // default value is DEFAULT
+    GroupName: "group-a", // default value is DEFAULT_GROUP
+}
+
+    serviceInstance, err := 
nc.DeregisterServiceInstance(deregisterInstanceParam)
+        if !serviceInstance && err != nil {
+        logger.Info("DeregisterServiceInstance result : %+V", serviceInstance)
 }
         //do your logic
 ```
 
+**7.Use client to invoke GetServiceInstanceInfo**
+```go
+        instanceInfo, result, err := nc.GetServiceInstanceInfo(queryData)
+            if result != false && err != nil {
+            logger.Fatal("Register nacos Instance error : %+V", err)
+        }
+        //do your logic
+```
+
 ## Entire Success log
 ```go
 2022-06-27 10:56:17 [INFO] 
[github.com/incubator-shenyu-client-golang/clients/nacos_client/nacos_client.go:92]
 RegisterServiceInstance,result:true
diff --git a/README_CN.md b/README_CN.md
index f0ccc88..535c026 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -183,21 +183,58 @@ metaData := &model.URIRegister{
 }
 ```
 
-**4.使用nacos客户端调用RegisterNacosInstance方法**
+**4. 获取ShenYu nacos的客户端**
 ```go
-    client, err := nacos_client.NewNacosClient(ncp)
-        if err != nil {
-        logger.Fatal("create nacos client error : %+V", err)
-}
+    sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+    result, createResult, err := sdkClient.NewClient(ncp)
+        if !createResult && err != nil {
+        logger.Fatal("Create nacos client error : %+V", err)
+    }
+
+       nc := &nacos_client.ShenYuNacosClient{
+               NacosClient: result.(*naming_client.NamingClient),
+       }
+```
+
 
-    registerResult, err := nacos_client.RegisterNacosInstance(client, 
nacosRegisterInstance)
+**5.使用客户端调用RegisterNacosInstance方法**
+```go
+    registerResult, err := nc.RegisterServiceInstance(nacosRegisterInstance)
         if !registerResult && err != nil {
-        logger.Fatal("Register nacos Instance error : %+V", err)
+    logger.Fatal("Register nacos Instance error : %+V", err)
 }
-        //做你的逻辑处理
+        //do your logic
 ```
 
-**5.完整的成功日志**
+**6.使用客户端调用DeregisterServiceInstance方法**
+```go
+//DeregisterServiceInstance start
+    deregisterInstanceParam := vo.DeregisterInstanceParam{
+    Ip:          "10.0.0.10",
+    Port:        8848,
+    ServiceName: "demo.go",
+    Ephemeral:   true,
+    //Cluster:     "cluster-a", // default value is DEFAULT
+    GroupName: "group-a", // default value is DEFAULT_GROUP
+}
+
+    serviceInstance, err := 
nc.DeregisterServiceInstance(deregisterInstanceParam)
+        if !serviceInstance && err != nil {
+        logger.Info("DeregisterServiceInstance result : %+V", serviceInstance)
+}
+        //do your logic
+```
+
+**7.使用客户端调用GetServiceInstanceInfo方法**
+```go
+        instanceInfo, result, err := nc.GetServiceInstanceInfo(queryData)
+            if result != false && err != nil {
+            logger.Fatal("Register nacos Instance error : %+V", err)
+        }
+        //do your logic
+```
+
+**完整的成功日志**
 ```go
 2022-06-27 10:56:17 [INFO] 
[github.com/incubator-shenyu-client-golang/clients/nacos_client/nacos_client.go:92]
 RegisterServiceInstance,result:true
 
diff --git a/example/nacos_client/main.go b/example/nacos_client/main.go
index c85af21..d63a9de 100644
--- a/example/nacos_client/main.go
+++ b/example/nacos_client/main.go
@@ -75,6 +75,7 @@ func main() {
                Healthy:     true,        //require user provide
                Ephemeral:   true,        //require user provide
                GroupName:   "group-a",   //require user provide
+               ClusterName: "cluster-a", // default value is DEFAULT
                Metadata:    map[string]string{"contextPath": "contextPath", 
"uriMetadata": string(metaDataStringJson)},
        }
 
@@ -84,11 +85,13 @@ func main() {
        }
        //RegisterServiceInstance end
 
+       time.Sleep(time.Second)
+
        //GetServiceInstanceInfo start
        queryData := vo.SelectInstancesParam{
                ServiceName: "demo.go",
-               GroupName:   "group-a", //default: DEFAULT_GROUP
-               //Clusters:    []string{"cluster-a"}, // default: DEFAULT
+               GroupName:   "group-a",             //default: DEFAULT_GROUP
+               Clusters:    []string{"cluster-a"}, // default: DEFAULT
                HealthyOnly: true,
        }
 
@@ -107,8 +110,8 @@ func main() {
                Port:        8848,
                ServiceName: "demo.go",
                Ephemeral:   true,
-               //Cluster:     "cluster-a", // default value is DEFAULT
-               GroupName: "group-a", // default value is DEFAULT_GROUP
+               Cluster:     "cluster-a", // default value is DEFAULT
+               GroupName:   "group-a",   // default value is DEFAULT_GROUP
        }
 
        serviceInstance, err := 
nc.DeregisterServiceInstance(deregisterInstanceParam)
diff --git a/example/nacos_client/nacos_client_test.go 
b/example/nacos_client/nacos_client_test.go
new file mode 100644
index 0000000..4b4342f
--- /dev/null
+++ b/example/nacos_client/nacos_client_test.go
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+       "encoding/json"
+       "github.com/apache/incubator-shenyu-client-golang/clients/nacos_client"
+       "github.com/apache/incubator-shenyu-client-golang/common/constants"
+       
"github.com/apache/incubator-shenyu-client-golang/common/shenyu_sdk_client"
+       "github.com/apache/incubator-shenyu-client-golang/model"
+       "github.com/nacos-group/nacos-sdk-go/clients/naming_client"
+       "github.com/nacos-group/nacos-sdk-go/vo"
+       "github.com/stretchr/testify/assert"
+       "testing"
+       "time"
+)
+
+/**
+ * TestInitNacosClient
+ **/
+func TestInitNacosClient(t *testing.T) {
+       //set nacos env configuration
+       ncp := &nacos_client.NacosClientParam{
+               IpAddr:      "console.nacos.io",
+               Port:        80,
+               NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+       }
+
+       sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+       client, createResult, err := sdkClient.NewClient(ncp)
+
+       assert.NotNil(t, client)
+       assert.True(t, createResult)
+       assert.Nil(t, err)
+}
+
+/**
+ * TestInitNacosClientAndRegister
+ **/
+func TestInitNacosClientAndRegister(t *testing.T) {
+       //set nacos env configuration
+       ncp := &nacos_client.NacosClientParam{
+               IpAddr:      "console.nacos.io",
+               Port:        80,
+               NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+       }
+
+       sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+       client, createResult, err := sdkClient.NewClient(ncp)
+
+       assert.NotNil(t, client)
+       assert.True(t, createResult)
+       assert.Nil(t, err)
+
+       nc := &nacos_client.ShenYuNacosClient{
+               NacosClient: client.(*naming_client.NamingClient),
+       }
+
+       //metaData is necessary param, this will be register to shenyu gateway 
to use
+       metaData := &model.URIRegister{
+               Protocol:    "testMetaDataRegister", //require user provide
+               AppName:     "testURLRegister",      //require user provide
+               ContextPath: "contextPath",          //require user provide
+               RPCType:     constants.RPCTYPE_HTTP, //require user provide
+               Host:        "127.0.0.1",            //require user provide
+               Port:        "8080",                 //require user provide
+       }
+       metaDataStringJson, _ := json.Marshal(metaData)
+
+       //init NacosRegisterInstance
+       nacosRegisterInstance := vo.RegisterInstanceParam{
+               Ip:          "10.0.0.10", //require user provide
+               Port:        8848,        //require user provide
+               ServiceName: "demo.go",   //require user provide
+               Weight:      10,          //require user provide
+               Enable:      true,        //require user provide
+               Healthy:     true,        //require user provide
+               Ephemeral:   true,        //require user provide
+               Metadata:    map[string]string{"contextPath": "contextPath", 
"uriMetadata": string(metaDataStringJson)},
+       }
+
+       instance, err := nc.RegisterServiceInstance(nacosRegisterInstance)
+       assert.Nil(t, err)
+       assert.NotNil(t, instance)
+}
+
+/**
+ * TestRegisterAndGetInstance
+ **/
+func TestRegisterAndGetInstance(t *testing.T) {
+       //set nacos env configuration
+       ncp := &nacos_client.NacosClientParam{
+               IpAddr:      "console.nacos.io",
+               Port:        80,
+               NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+       }
+
+       sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+       client, createResult, err := sdkClient.NewClient(ncp)
+
+       assert.NotNil(t, client)
+       assert.True(t, createResult)
+       assert.Nil(t, err)
+
+       nc := &nacos_client.ShenYuNacosClient{
+               NacosClient: client.(*naming_client.NamingClient),
+       }
+
+       //metaData is necessary param, this will be register to shenyu gateway 
to use
+       metaData := &model.URIRegister{
+               Protocol:    "testMetaDataRegister", //require user provide
+               AppName:     "testURLRegister",      //require user provide
+               ContextPath: "contextPath",          //require user provide
+               RPCType:     constants.RPCTYPE_HTTP, //require user provide
+               Host:        "127.0.0.1",            //require user provide
+               Port:        "8080",                 //require user provide
+       }
+       metaDataStringJson, _ := json.Marshal(metaData)
+
+       //init NacosRegisterInstance
+       nacosRegisterInstance := vo.RegisterInstanceParam{
+               Ip:          "10.0.0.10", //require user provide
+               Port:        8848,        //require user provide
+               ServiceName: "demo.go",   //require user provide
+               Weight:      10,          //require user provide
+               Enable:      true,        //require user provide
+               Healthy:     true,        //require user provide
+               Ephemeral:   true,        //require user provide
+               GroupName:   "group-a",   //require user provide
+               Metadata:    map[string]string{"contextPath": "contextPath", 
"uriMetadata": string(metaDataStringJson)},
+       }
+
+       instance, err := nc.RegisterServiceInstance(nacosRegisterInstance)
+       assert.Nil(t, err)
+       assert.NotNil(t, instance)
+
+       time.Sleep(time.Second)
+
+       queryData := vo.SelectInstancesParam{
+               ServiceName: "demo.go",
+               GroupName:   "group-a", //default: DEFAULT_GROUP
+               //Clusters:    []string{"cluster-a"}, // default: DEFAULT
+               HealthyOnly: true,
+       }
+
+       instanceInfo, result, err := nc.GetServiceInstanceInfo(queryData)
+       assert.Nil(t, err)
+       assert.True(t, result)
+       assert.NotNil(t, instanceInfo)
+}
+
+/**
+ * TestRegisterAndDeregister
+ **/
+func TestRegisterAndDeregister(t *testing.T) {
+       //set nacos env configuration
+       ncp := &nacos_client.NacosClientParam{
+               IpAddr:      "console.nacos.io",
+               Port:        80,
+               NamespaceId: "e525eafa-f7d7-4029-83d9-008937f9d468",
+       }
+
+       sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
+       client, createResult, err := sdkClient.NewClient(ncp)
+
+       assert.NotNil(t, client)
+       assert.True(t, createResult)
+       assert.Nil(t, err)
+
+       nc := &nacos_client.ShenYuNacosClient{
+               NacosClient: client.(*naming_client.NamingClient),
+       }
+
+       //metaData is necessary param, this will be register to shenyu gateway 
to use
+       metaData := &model.URIRegister{
+               Protocol:    "testMetaDataRegister", //require user provide
+               AppName:     "testURLRegister",      //require user provide
+               ContextPath: "contextPath",          //require user provide
+               RPCType:     constants.RPCTYPE_HTTP, //require user provide
+               Host:        "127.0.0.1",            //require user provide
+               Port:        "8080",                 //require user provide
+       }
+       metaDataStringJson, _ := json.Marshal(metaData)
+
+       //init NacosRegisterInstance
+       nacosRegisterInstance := vo.RegisterInstanceParam{
+               Ip:          "10.0.0.10", //require user provide
+               Port:        8848,        //require user provide
+               ServiceName: "demo.go",   //require user provide
+               Weight:      10,          //require user provide
+               Enable:      true,        //require user provide
+               Healthy:     true,        //require user provide
+               Ephemeral:   true,        //require user provide
+               GroupName:   "group-a",   //require user provide
+               Metadata:    map[string]string{"contextPath": "contextPath", 
"uriMetadata": string(metaDataStringJson)},
+       }
+
+       instance, err := nc.RegisterServiceInstance(nacosRegisterInstance)
+       assert.Nil(t, err)
+       assert.NotNil(t, instance)
+
+       time.Sleep(time.Second)
+       deregisterInstanceParam := vo.DeregisterInstanceParam{
+               Ip:          "10.0.0.10",
+               Port:        8848,
+               ServiceName: "demo.go",
+               Ephemeral:   true,
+               //Cluster:     "cluster-a", // default value is DEFAULT
+               GroupName: "group-a", // default value is DEFAULT_GROUP
+       }
+
+       serviceInstance, err := 
nc.DeregisterServiceInstance(deregisterInstanceParam)
+       assert.Nil(t, err)
+       assert.True(t, serviceInstance)
+}

Reply via email to