huaweicloud-sdk-go-v3 icon indicating copy to clipboard operation
huaweicloud-sdk-go-v3 copied to clipboard

region.go的ValueOf方法建议

Open allen581 opened this issue 3 years ago • 6 comments

不存在的region,感觉没必要panic吧,返回个nil合理一点

allen581 avatar Jun 16 '21 09:06 allen581

你好,您的建议已收到,我们先内部讨论一下。此处 panic 是考虑到如果找不到region,SDK Core中必填项 endpoint 无法获取,在发请求的时候也会有异常,所以提前拦截了。

wuchen-huawei avatar Jun 22 '21 11:06 wuchen-huawei

我原打算利用该方法获取region,获取不到我自己会做判断,不会发请求的。现在这个方法根本没办法用。

allen581 avatar Jul 13 '21 10:07 allen581

你好,针对panic的场景,我们建议你可以查看一下处理panic的recover方法,您看下这样能否满足您的使用场景

Huaweicloud-SDK avatar Jul 20 '21 03:07 Huaweicloud-SDK

client 构造一定加 recover hhh

PaiHL avatar Nov 21 '23 04:11 PaiHL

那 client 构造返回 err 的意义何在呢

PaiHL avatar Nov 21 '23 04:11 PaiHL

v0.1.84版本新增了一套没有panic的构建方法,具体可参考README

package main

import (
    "os"
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
	vpc "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpc/v2"
	vpcModel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpc/v2/model"
	vpcRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vpc/v2/region"
)

func main() {
    // 配置认证信息
    auth, err := basic.NewCredentialsBuilder().
        WithAk(os.Getenv("HUAWEICLOUD_SDK_AK")).
        WithSk(os.Getenv("HUAWEICLOUD_SDK_SK")).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }

    // Get available region
    region, err := vpcRegion.SafeValueOf("cn-north-4")
    if err != nil {
        fmt.Println(err)
        return
    }

    // 创建服务客户端
    hcClient, err := vpc.VpcClientBuilder().
        WithRegion(region).
        WithCredential(auth).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    client := vpc.NewVpcClient(hcClient)

    // 发送请求并获取响应
    request := &vpcModel.ListVpcsRequest{}
    response, err := client.ListVpcs(request)
    if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

mawenbo-huawei avatar Feb 29 '24 07:02 mawenbo-huawei