主页

索引

模块索引

搜索页面

2.1.15. SDK 规范

常见的命名方式:

xxx-sdk-go / xxx-sdk-python / xxx-sdk-java

一个典型的目录结构如下:

├── examples            # 示例代码存放目录
│   └── authz.go
├── README.md           # SDK使用文档
├── sdk                 # 公共包,封装了SDK配置、API请求、认证等代码
│   ├── client.go
│   ├── config.go
│   ├── credential.go
│   └── ...
└── services            # API封装
    ├── common
    │   └── model
    ├── iam             # iam服务的API接口
    │   ├── authz.go
    │   ├── client.go
    │   └── ...
    └── tms             # tms服务的API接口

另一个典型的目录结构:

├── examples                        # 存放SDK的使用示例
├── Makefile                        # 管理SDK源码,静态代码检查、代码格式化、测试、添加版权信息等
├── marmotedu
│   ├── clientset.go                # clientset实现,clientset中包含多个应用,多个服务的API接口
│   ├── fake                        # clientset的fake实现,主要用于单元测试
│   └── service                     # 按应用进行分类,存放应用中各服务API接口的具体实现
│       ├── iam                     # iam应用的API接口实现,包含多个服务
│       │   ├── apiserver           # iam应用中,apiserver服务的API接口,包含多个版本
│       │   │   └── v1              # apiserver v1版本API接口
│       │   ├── authz               # iam应用中,authz服务的API接口
│       │   │   └── v1              # authz服务v1版本接口
│       │   └── iam_client.go       # iam应用的客户端,包含了apiserver和authz 2个服务的客户端
│       └── tms                     # tms应用的API接口实现
├── pkg                             # 存放一些共享包,可对外暴露
├── rest                            # HTTP请求的底层实现
├── third_party                     # 存放修改过的第三方包,例如:gorequest
└── tools
    └── clientcmd                   # 一些函数用来帮助创建rest.Config配置

主页

索引

模块索引

搜索页面