当前位置: 首页 > news >正文

Golang编写客户端SDK,并开源发布包到GitHub,供其他项目import使用

目录

  • 编写客户端SDK,并开源发布包到GitHub
    • 1. 创建 GitHub 仓库
    • 2. 构建项目,编写代码
      • Go 代码示例:
      • 项目目录结构展示:
    • 3. 提交代码到 GitHub仓库
    • 4. 发布版本
    • 5. 现在其他人可以引用使用你的模块包了

编写客户端SDK,并开源发布包到GitHub

如果希望其他项目能够使用该SDK,可以将该SDK打包为一个Go模块,并将其发布到Go模块仓库中。这将使其他项目能够通过Go的模块依赖机制来使用该SDK。可以轻松地引用和使用你的代码。

1. 创建 GitHub 仓库

  1. 登录到你的 GitHub 帐户。
  2. 在 GitHub 主页点击右上角的加号(+),然后选择 “New repository”(新建仓库)。
  3. 给你的仓库起一个名称,选择是公共的,然后点击 “Create repository”(创建仓库)按钮。
  • 克隆项目到本地:使用 git clone 命令来克隆仓库到本地。需要提供 GitHub 仓库的 URL,可以在仓库页面的右上角找到 “Code” 按钮,然后选择 HTTPS 或 SSH URL。
  • 使用 HTTPS URL 克隆仓库:
    git clone https://github.com/用户名/仓库名.git
    
  • 使用 SSH URL 克隆仓库(需要配置 SSH 密钥):
    git clone git@github.com:用户名/仓库名.git
    

2. 构建项目,编写代码

克隆成功后,此时项目是一个空仓库,使用 go mod 的方式管理包,对项目进行初始化:

git mod init github.com/用户名/仓库名

初始化成功后,项目根目录下会新增一个 go.mod 文件。
⚠️ 注意:这里的项目名需要为 github.com/用户名/仓库名 (将用户名、仓库名替换为你实际项目中的名称)

Go 代码示例:

package clienttype Client struct {AccessKey stringSecretKey string
}func NewClient(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仓库

完成了代码编写及测试正常后,将代码提交到远程仓库中。

  1. 添加文件到暂存区: 使用 git add 命令将你要提交的文件添加到 Git 的暂存区。可以使用以下命令添加所有更改:

    git add .	//这个命令将当前目录下所有文件(包括新添加、修改和删除的文件)添加到暂存区。但它不会包括未跟踪的文件,也就是那些没有被 Git 管理的文件。如果你在项目中新建了文件,使用这个命令将不会将它们添加到暂存区。
    git add -Agit add --all	//这个命令会将当前目录下的所有更改(包括新添加、修改、删除的文件)以及未跟踪的文件全部添加到暂存区。它是一个更全面的命令,适用于确保所有更改都被提交到 Git。
    

    或者,如果你只想添加特定文件,可以使用:

    git add 文件名
    
  2. 提交更改: 使用 git commit 命令将暂存区的更改提交到本地仓库,并添加提交消息来描述你的更改。例如:

    git commit -m "添加了一个新功能"
    
  3. 推送到远程仓库: 使用 git push 命令。例如:

    git push -u origin 分支名
    

    将 “分支名” 替换为你要推送的分支名称。通常,main 或 master 是默认的主分支名称。

  4. 📢 注意,如果你是第一次提交到 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 发布。
![在这里插入图片描述](https://img-blog.csdnimg.cn/3404adc6ff7048acac4ecc897506066e.pn

5. 现在其他人可以引用使用你的模块包了

成功发布后,其他人就可以像平时使用第三方包一样直接go getimport 我们的模块包了。

go get github.com/用户名/仓库名

或者

require (github.com/用户名/仓库名 v1.0.0
)

然后运行 go get 命令下载该依赖。

使用该模块包:

package main
import "github.com/xiaoxiongmao5/xapi-clientsdk/client"func main() {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)
}
http://www.lryc.cn/news/159815.html

相关文章:

  • 手写Mybatis:第10章-使用策略模式,调用参数处理器
  • pair 是 C++ 标准库中的一个模板类,用于存储两个对象的组合
  • More Effective C++学习笔记(5)
  • SpringMVC之CRUD(直接让你迅速完成部署)
  • Github Copilot连接不上服务器
  • (数字图像处理MATLAB+Python)第十二章图像编码-第三、四节:有损编码和JPEG
  • 基于SpringBoot + Vue的项目整合WebSocket的入门教程
  • AI智能机器人的语音识别是如何实现的 ?
  • RabbitMQ: 死信队列
  • 232 - Crossword Answers (UVA)
  • MySQL表结构设计规范
  • 如何利用ProcessOn 做资产管理流程图
  • geopandas 笔记:geometry上的操作汇总
  • 【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用
  • Python对象序列化
  • jmeter 准确的吞吐量定时器 Precise Throughput Timer
  • 后端/DFT/ATPG/PCB/SignOff设计常用工具/操作/流程及一些文件类型
  • jvm 程序计算器 程序计数器是否溢出 程序计数器是做什么的 java程序计数器会内存溢出吗 程序计数器作用与用处 jvm内存模型 jvm合集(一)
  • 关于近期小程序测试的常见漏洞演示
  • 磐基2.0部署apisix集群
  • Python requests爬虫豆瓣图片返回数据为空。
  • 【Spring事务的实现原理】
  • 摆动输入连杆夹持机构
  • C++——类与对象(下篇)
  • stm32 freeRTOS lwip TCP快速发送,内存泄露问题
  • Ei、Scopus双检索 | 2024年第三届人工智能与机器学习前沿国际会议(FAIML 2024)
  • win10环境下搭建QT+opencv
  • React16、18 使用 Redux
  • 【Python】Python运算符/部分函数对应的双下划线魔法方法
  • Macs Fan Control 1.5.16 Pro for mac风扇调节软件