目录
编写客户端SDK,并开源发布包到GitHub
如果希望其他项目能够使用该SDK,可以将该SDK打包为一个Go模块,并将其发布到Go模块仓库中。这将使其他项目能够通过Go的模块依赖机制来使用该SDK。可以轻松地引用和使用你的代码。
1. 创建 GitHub 仓库
- 登录到你的 GitHub 帐户。
- 在 GitHub 主页点击右上角的加号(+),然后选择 “New repository”(新建仓库)。
- 给你的仓库起一个名称,选择是公共的,然后点击 “Create repository”(创建仓库)按钮。
- 克隆项目到本地:使用
git clone
命令来克隆仓库到本地。需要提供 GitHub 仓库的 URL,可以在仓库页面的右上角找到 “Code” 按钮,然后选择 HTTPS 或 SSH URL。 - 使用 HTTPS URL 克隆仓库:
git clone https://github.com/用户名/仓库名.git
- 使用 SSH URL 克隆仓库(需要配置 SSH 密钥):
git clone [email protected]:用户名/仓库名.git
2. 构建项目,编写代码
克隆成功后,此时项目是一个空仓库,使用
go mod
的方式管理包,对项目进行初始化:
git mod init github.com/用户名/仓库名
初始化成功后,项目根目录下会新增一个 go.mod 文件。
⚠️ 注意:这里的项目名需要为 github.com/用户名/仓库名 (将用户名、仓库名替换为你实际项目中的名称)
Go 代码示例:
package client
type Client struct{
AccessKey string
SecretKey string}funcNewClient(accessKey, secretKey string)*Client {return&Client{
AccessKey: accessKey,
SecretKey: secretKey,}}func(c *Client)GetNameByGet(name string)(data interface{}, err error){return"名字是"+ name,nil}
项目目录结构展示:
3. 提交代码到 GitHub仓库
完成了代码编写及测试正常后,将代码提交到远程仓库中。
- 添加文件到暂存区: 使用
git add
命令将你要提交的文件添加到 Git 的暂存区。可以使用以下命令添加所有更改:gitadd. //这个命令将当前目录下所有文件(包括新添加、修改和删除的文件)添加到暂存区。但它不会包括未跟踪的文件,也就是那些没有被 Git 管理的文件。如果你在项目中新建了文件,使用这个命令将不会将它们添加到暂存区。gitadd-A 或 gitadd--all //这个命令会将当前目录下的所有更改(包括新添加、修改、删除的文件)以及未跟踪的文件全部添加到暂存区。它是一个更全面的命令,适用于确保所有更改都被提交到 Git。
或者,如果你只想添加特定文件,可以使用:gitadd 文件名
- 提交更改: 使用
git commit
命令将暂存区的更改提交到本地仓库,并添加提交消息来描述你的更改。例如:git commit -m"添加了一个新功能"
- 推送到远程仓库: 使用
git push
命令。例如:git push -u origin 分支名
将 “分支名” 替换为你要推送的分支名称。通常,main 或 master 是默认的主分支名称。 - 📢 注意,如果你是第一次提交到 GitHub 仓库,需要配置 Git 以关联本地仓库和远程仓库。使用
git remote
命令来添加远程仓库的别名。例如:git remote add origin 仓库URL
“origin” 是远程仓库的别名,可以自定义。“仓库URL” 是你 GitHub 仓库的 URL。 一旦关联了远程仓库,就使用 git push 将更改推送到远程仓库
4. 发布版本
push成功后,刷新GitHub上的仓库,确认项目代码已经上传成功。然后点击
tags
创建标签和构建
release
版本。
接着点击:Create a new release
然后,添加一个版本号打上tag,完善描述信息后,点击 Publish release 发布。
5. 现在其他人可以引用使用你的模块包了
成功发布后,其他人就可以像平时使用第三方包一样直接
go get
和
import
我们的模块包了。
go get github.com/用户名/仓库名
或者
require (
github.com/用户名/仓库名 v1.0.0
)
然后运行
go get
命令下载该依赖。
使用该模块包:
package main
import"github.com/xiaoxiongmao5/xapi-clientsdk/client"funcmain(){
accessKey, secretKet :="zs","123456"
clientsdk = client.NewClient(accessKey, secretKey)
data, err := clientsdk.GetNameByGet(name)if err !=nil{
fmt.Println("ERROR: Failed to read response, err=", err)return}
fmt.Printf("SUCCESS: data=%T data=%v \n", data, data)}
版权归原作者 小小小熊猫5 所有, 如有侵权,请联系我们删除。