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.mzph.cn/news/69355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue项目案例-头条新闻

目录 1.项目介绍 1.1项目功能 1.2数据接口 1.3设计思路 2.创建项目并安装依赖 2.1创建步骤 2.2工程目录结构 2.3配置文件代码 3.App主组件开发 3.1设计思路 3.2对应代码 4.共通组件开发 4.1设计思路 4.2对应代码 5.头条新闻组件开发 5.1设计思路 5.2对应代码 …

Xcode打包ipa文件,查看app包内文件

1、Xcode发布ipa文件前,在info中打开如下两个选项,即可在手机上查看app包名文件夹下的文件及数据。

postman9.12.汉化版(附有下载链接)

想用英文版本的可以直接点击下载最新版本 这里直接付上9.12.2版本的下载链接,如果大家要下载别的版本,可以直接修改链接里面的版本号即可 ,下面是汉化包下载 链接:https://pan.baidu.com/s/1izK3HfqlfXJdq6KIYeJ2zw?pwdpetk 提…

【数据结构】2015统考真题 6

题目描述 【2015统考真题】求下面的带权图的最小(代价)生成树时,可能是Kruskal算法第2次选中但不是Prim算法(从v4开始)第2次选中的边是(C) A. (V1, V3) B. (V1, V4) C. (V2, V3) D. (V3, V4) …

【计算机组成 课程笔记】5.1 处理器的设计步骤

课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 5 - 1 - 501-处理器的设计步骤(14-49--)_哔哩哔哩_bilibili 处理器,或者说是CPU,是现代计算机中最为复杂的一个部件。不过先不要劝退,要设计一个简单但是…

如何检测勒索软件攻击

什么是勒索软件 勒索软件又称勒索病毒,是一种特殊的恶意软件,又被归类为“阻断访问式攻击”(denial-of-access attack),与其他病毒最大的不同在于攻击方法以及中毒方式。 攻击方法:攻击它采用技术手段限制…

若依 MyBatis改为MyBatis-Plus

主要内容:升级成mybatis-plus,代码生成也是mybatis-plus版本 跟着我一步一步来,就可完成升级! 检查:启动程序,先保证若依能启动 第一步:添加依赖 这里需要在两个地方添加,一个是最…

【C语言】——调试技巧

目录 ​编辑 ①前言 1.什么是Bug? 2.什么是调试? 2.1调试的基本步骤 2.2Release与Debug 3.常用快捷键 4.如何写出好的代码 4.1常见的coding技巧 👉assert() 👉const() const修饰指针: ①前言 调试是每个程序员都…

机器学习前沿:改进自身缺陷,满足新战略

前机械师( 来源) 一、说明 机器学习在人工智能历史上扮演重要角色,然而,存在问题也不少。为了适应新时代和新任务,不做出重大改进是不可能的,本篇就一些突出问题和改进做出讨论。以便读者掌握未来的思路和方向。 二、机…

【Lychee图床】本地电脑搭建私人图床,公网远程访问

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…

springboot配置统一返回结果类

目录结构&#xff1a; Result类&#xff1a; package com.xxxx.common.result;import lombok.Data;Data public class Result<T> {//状态码private Integer code;//信息private String message;//数据private T data;//构造私有化private Result() { }//设置数据,返回对…

报文信息转换器

HttpMessageConverter HttpMessageConverter:报文信息转换器&#xff0c;将请求报文转换为Java对象&#xff0c;或将Java对象转换为响应报文。它提供了两个注解和两个类型&#xff1a; RequestBody, ResponseBody, RequestEntity, ResponseEntity(响应用的较多) 准备 创建模块并…

行业追踪,2023-08-30

自动复盘 2023-08-30 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

从一到无穷大 #13 How does Lindorm TSDB solve the high cardinality problem?

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言优势挑战系统架构细节/优化存储引擎索引写入查询 经验Ablation Study总结 引言 …

一文速学-让神经网络不再神秘,一天速学神经网络基础(七)-基于误差的反向传播

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…

基于边缘物联网关的智慧零售应用方案

推动经济健康发展增长&#xff0c;就要持续促进和扩大消费需求&#xff0c;提升消费体验。随着物联网技术的普及&#xff0c;面向日常消费的智慧零售应用迎来爆发式增长&#xff0c;不仅可以提升消费者消费体验&#xff0c;还可以提高商家营销和管理效率。本篇就为大家简单介绍…

Ubuntu入门04——目录与文件

目录 1.显示当前工作目录 2.更改目录 3.创建工作目录 4.删除工作目录 5.移动文件或者文件夹 6.文件夹and文件查看命令 7. 回到根目录&#xff0c;回到上一级 8.删除工作目录 9.查看目录和文件 10.以树状图列出目录内容 11.文件查找 12.在数据库中查找文件或目录 1…

uni-app:实现右侧弹窗

效果&#xff1a; 代码&#xff1a; <template><view class"container"><button click"showModal true">点击按钮</button><view class"modal-overlay" v-if"showModal" click"closeModal">…

linux并发服务器 —— 项目实战(九)

阻塞/非阻塞、同步/异步 数据就绪 - 根据系统IO操作的就绪状态 阻塞 - 调用IO方法的线程进入阻塞状态&#xff08;挂起&#xff09; 非阻塞 - 不会改变线程的状态&#xff0c;通过返回值判断 数据读写 - 根据应用程序和内核的交互方式 同步 - 数据的读写需要应用层去读写 …

poll epoll初学习

正是select这些缺点&#xff0c;才有了poll 1.I/O多路转接之poll 2.I/O多路转接之epoll 其中的struct epoll_event: