• 你赖东东不错嘛
    2021-08-11
    Q1:构建Request时将API版本作为可选参数传入

    作者回复: 优秀!

    
    7
  • return
    2021-12-06
    老师讲的太好了, 请教老师一个问题: sdk中 日志应该如何设计比较好, 我看 阿里云是 默认了一个实现,用的标准log。 这样好吗, 如果用户使用的是 zap,那是不是得分文件,用同一个文件会不会冲突。 感觉都不优雅

    作者回复: 我感觉有2个思路: 1. 直接返回错误,不打印日志。 2. 如果SDK中需要打印日志,在创建SDK Client时,添加一个可选的Logger接口,将程序中的logger传进入。 建议1,感觉SDK没必要打印日志,因为SDK功能其实比较简单,就是组合参数、发送HTTP请求、返回数据。不会封装复杂的逻辑。

    共 2 条评论
    6
  • fliyu
    2022-01-19
    openapi-generator是个非常不错的项目:https://github.com/openapitools/openapi-generator,支持生成几十种客户端语言,安装简单,使用简单,生成的代码质量高,还有特别详细的markdown使用文档,超级推荐

    作者回复: 感谢分享,后面看下能否切换到这种方式

    
    3
  • yandongxiao
    2021-12-04
    总结: SDK的命名规范、目录结构、以及各个云厂商的逻辑架构。 云厂商的SDK的实现分为两层:API层和基础层。 API 层实现一个Client对象,每个方法对应了一个API接口 基础层:主要负责,请求的Marshall、Unmarshal、签名等功能。 API 层的 Client 通过匿名的方式继承了基础层的 Client。

    作者回复: 总结的到位!

    
    2
  • ppd0705
    2021-10-31
    云厂商python版本sdk感觉代码质量ucloud最好

    作者回复: 感谢分享!

    
    2
  • ⁶₆⁶₆⁶₆
    2021-09-25
    你讲义里面提供的客户端调用示例执行失败了,也就是你https://github.com/marmotedu/medu-sdk-go里面提供的那个示例代码,错误提示如下,提示找不到对应的包,但是明明已经拉下来了呀,没看出原因,希望大佬能解答下。 [root@dev sdk]# go mod init sdk go: creating new go.mod: module sdk go: to add module requirements and sums: go mod tidy [root@dev sdk]# go mod tidy go: finding module for package github.com/marmotedu/medu-sdk-go/services/iam go: finding module for package github.com/marmotedu/medu-sdk-go/sdk go: finding module for package github.com/ory/ladon go: found github.com/marmotedu/medu-sdk-go/sdk in github.com/marmotedu/medu-sdk-go v1.0.0 go: found github.com/ory/ladon in github.com/ory/ladon v1.2.0 go: finding module for package github.com/marmotedu/medu-sdk-go/services/iam sdk imports github.com/marmotedu/medu-sdk-go/services/iam: module github.com/marmotedu/medu-sdk-go@latest found (v1.0.0), but does not contain package github.com/marmotedu/medu-sdk-go/services/iam [root@dev sdk]# [root@dev sdk]# ll /root/workspace/golang/pkg/mod/github.com/marmotedu/ total 8 dr-xr-xr-x 6 root root 185 Sep 16 01:16 api@v1.0.1 dr-xr-xr-x 3 root root 138 Sep 25 17:48 component-base@v0.0.2 dr-xr-xr-x 3 root root 138 Sep 22 22:43 component-base@v1.0.0 dr-xr-xr-x 3 root root 138 Sep 16 01:16 component-base@v1.0.1 dr-xr-xr-x 2 root root 4096 Sep 22 22:43 errors@v0.0.1 dr-xr-xr-x 2 root root 4096 Sep 16 01:16 errors@v1.0.2 dr-xr-xr-x 18 root root 257 Sep 15 22:57 gopractise-demo@v0.0.1 dr-xr-xr-x 5 root root 261 Sep 16 01:16 log@v0.0.1 dr-xr-xr-x 8 root root 233 Sep 16 01:18 marmotedu-sdk-go@v1.0.2-0.20210528170801-2c91b80cb4cf dr-xr-xr-x 5 root root 112 Sep 25 17:48 medu-sdk-go@v1.0.0 [root@dev sdk]#
    展开

    作者回复: go mod init sdk 上面的命令换成:go mod init github.com/marmotedu/medu-sdk-go 因为你init的报名是sdk,所以找不到当前包下的iam目录

    
    2
  • Geek_d71d64
    2022-11-18 来自广东
    sdk的api和前端网页的api如何区分开来呢?

    作者回复: 通过 UserAgent Header 来区分

    
    
  • tiny🌾
    2022-10-26 来自广东
    前端比如安卓的sdk也是这个设计思路吗

    作者回复: 我理解思路都是一样的

    
    
  • 阿波罗尼斯圆
    2022-10-17 来自广东
    doc.go是干啥的

    作者回复: doc.go中,是包级别的注释,例如可以在里面写上包是如何使用的

    共 2 条评论
    
  • Sch0ng
    2021-08-17
    sdk为服务使用方提供了方便的同时,也为服务提供方省去很多不必要的沟通培训成本。 文中介绍了go sdk的目录结构,架构和云厂商常用的设计实现方案。
    
    2