这里首先分享下,我觉得学习一个开源项目最快的学习步骤:
- 阅读 README,掌握项目的部署方式、功能列表、使用方式等;
- 克隆源码,本地编译构建,并启动服务,测试自己关注的功能点;
- 阅读并修改源码,实现期望的效果,并重新编译测试。
为了让你最高效地学习本实战项目,本节课,我会给你介绍实战项目的内容,并带你快速编译并部署本实战项目。
实战项目介绍
本课程主要目的是让你快速学习 Go 项目开发中的核心知识,所以重点不在业务本身,而在如何开发 Go 项目上。为了最大化减小你的学习成本,同时又具有足够的业务复杂度来承载课程的核心知识,本课程选择了博客系统,原因如下:
- 业务逻辑被广泛熟知: 相信每个开发者都写过博客,对博客系统基本流程已经非常熟悉,可以省去项目的业务理解部分;
- 业务逻辑简单: 只需要创建一个新用户,然后登录博客系统,创建博客(只有标题和内容)即可,减少了业务理解难度。
本博客系统实现了以下 2 类功能:
- 用户管理: 支持
用户注册
、用户登录
、获取用户列表
、获取用户详情
、更新用户信息
、修改用户密码
、注销用户
7 种用户操作; - 博客管理: 支持
创建博客
、获取博客列表
、获取博客详情
、更新博客内容
、删除博客
、批量删除博客
6 种博客操作。
具体操作方法可参考:博客系统操作指南。
博客系统功能及使用流程如下图所示:
操作流程如下:
- 普通用户:注册用户后,登录系统,之后可以执行博客的 CURD 操作。还可以获取注册时的详细信息,再次更新用户信息,包括密码;
root
用户:root
用户为博客系统的管理员用户,整个系统只有一个root
用户。root
用户除了可以执行普通用户的所有操作之外,还可以执行 1 类管理员操作:获取用户列表。
另外,如果你想了解 miniblog 实现的更多功能列表,可以参考:features 列表。
如何部署实战项目?
通过上面介绍本实战项目,我们已经阅读了 README。那么接下来我们就需要执行第 2 步:部署实战项目。
部署一个 Go 开源项目,一般需要以下几步:
- 准备好一台部署服务器,这里建议使用 Linux;
- 安装 Go 编译环境;
- 配置 Go 开发环境;
- 克隆项目源码、编译构建、修改配置、部署服务。
因为本课程是基于 Linux 进行部署的,为了避免环境差异带来的问题,建议你也基于 Linux 系统进行部署。Go 的优势之一,是跨平台,所以如果你有 Mac、Windows 操作系统,理论上也可以顺利部署。只不过,你要自己根据理解进行部署。欢迎大家在评论区分享这些平台的部署教程。
如果你刚接触 Linux,建议你最好使用 Linux 进行开发部署,因为在使用 Linux 的同时,也是在学习 Linux,并且是带着需求去学习、实战,学习效率更高。
下面,我会介绍如何从 0 到 1 部署好本实战项目。
Linux 服务器申请和配置
本项目基于 Linux 服务器进行部署,所以首先你需要准备一台 Linux 服务器(优先选择 CentOS 8.x 操作系统)。
准备 Linux 服务器
你有多种方法准备一个 Linux 服务器,最简单、省钱的方法是购买一台 Linux 云服务器,比如登录腾讯云官网,购买一台竞价实例 CVM 服务器,购买链接为 腾讯云 CVM 购买页面。购买时,注意选择以下配置(其它配置可根据需要使用默认配置):
- 计费模式:竞价实例;
- 地域:可以选择最靠近访问位置的地域;
- 类型:可以选择费用最小的实例类型,例如:标准型 SA2(
SA2.SMALL1
:1核1GB); - 镜像:选择 公共镜像 -> Cent OS -> 64位 -> CentOS 8.4;
- 公网 IP:勾选 免费分配独立公网 ****IP(默认已勾选);
- 带宽计费模式:按使用流量(默认值);
- 安全组:选择 default,默认放通所有端口。
提示:如果没有
SA2.SMALL1
机型,可以选择其它费用低的机型。如果你能承受费用,也可以购买包年包月 / 按量计费服务器。
购买完成之后,在 CVM 机器列表页面,能够看到所购买的 CVM 服务器及其公网 IP 地址(带 (公)
后缀的 IP 地址),通过公网 IP 地址登录 CVM 服务器,如下图所示:
提示:为了加快编译,我选择了
标准型S6
机型。
这里分享下我日常的开发环境:
- 我工作机用的是 Windows:因为 Windows 上有很多可以提高工作效率的工具,例如:Ditto、EveryThing、TotalCommand、Autohotkey、FastStone 等;
- 开发机用的是腾讯云 CVM (2 核 4G):之所以用云服务器作为开发机,是因为只要有网络,我就可以通过 Xshell 登录到开发机上,进行开发。不需要再进行复杂的开发环境配置,而且开发机上已经保存了开发需要的代码。另外,基于 Linux 进行开发,我也能够使用 Linux 上的各种工具,提高开发效率,例如:
find
、grep
、bash
脚本、sed
、awk
等。
使用 root 用户登录并配置 Linux 服务器
你可以使用 root
用户、root 密码、Linux 服务器 IP 地址,并通过 Xshell 等终端工具登录 Linux 服务器。登录 Linux 服务器后,你需要先对 Linux 服务器进行一些简单的配置,具体步骤如下。
- 用
root
用户登录 Linux 系统,并创建普通用户。
创建普通用户方法如下:
# useradd goer # 创建 goer 用户,通过 goer 用户登录开发机进行开发
# passwd goer # 设置 goer 用户的登录密码
Changing password for user goer.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
创建完普通用户之后,我们就可以使用普通用户 goer
登录系统,并执行各类操作,使用普通用户操作 Linux,因为权限有限,可以最大限度确保 Linux 服务器的安全。
提示:强烈建议使用普通用户进行日常代码开发,因为你永远无法 100% 保证自己不会执行
rm -rf / *
这类操作,你的研发生涯,哪怕只有那么 1 ~ 2 次此类操作,也绝对你够你糟心一段时间的。
- 添加 sudoers。
在 步骤 1 中,我们创建了一个普通用户 goer
,有时候普通用户也需要执行一些需要 root 权限的操作,例如使用 yum
安装一个软件包,这时候最好的办法是将普通用户添加到 sudoers 中,这样普通用户就可以通过 sudo
命令来暂时获取 root 权限。具体来说,你可以执行以下命令将 goer
用户添加到 sudoers 中:
# sed -i '/^root.*ALL=(ALL).*ALL/a\goer\tALL=(ALL) \tALL' /etc/sudoers
- 替换 CentOS 8.4 系统中自带的 Yum 源。
由于 Red Hat 提前宣布 CentOS 8 于 2021 年 12 月 31 日停止维护,官方的 Yum 源已不可使用,所以需要切换官方的 Yum 源,这里选择阿里提供的 Yum 源。切换命令如下:
# mv /etc/yum.repos.d /etc/yum.repos.d.bak # 先备份原有的 Yum 源
# mkdir /etc/yum.repos.d
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# yum clean all && yum makecache
提示:在 Linux 系统下,覆盖一个文件时,根据情况先备份被覆盖的文件,是一个好的操作习惯。
使用普通用户登录并配置 Linux 服务器
刚刚我们创建了 goer
普通用户,接下来,我们就可以使用 goer
用户登录并配置 Linux 服务器,具体步骤如下。
- 登录 Linux 系统。
假设我们使用 goer
用户作为实战用户,使用 Xshell/SecureCRT 等工具登录 Linux 系统。这里我更推荐 Xshell,功能强大、易用。
- 配置
$HOME/.bashrc
文件。
我们登录新服务器后的第一步就是配置 $HOME/.bashrc
文件,以使 Linux 登录 Shell 更加易用,例如:配置 LANG
解决中文乱码;配置 PS1
可以使命令行提示符显示更简洁。配置后的内容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ ! -d $HOME/workspace ]; then
mkdir -p $HOME/workspace
fi
# User specific environment
# Basic envs
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd $WORKSPACE # 登录系统,默认进入 workspace 目录
# User specific aliases and functions
通过 vi
命令打开文件 $HOME/.bashrc
粘贴文件时,因为 vi 默认处在非粘贴模式,粘贴后内容可能被 vi 自动缩进,这些缩进,并不一定是我们需要的。这时候可以在 vi 中键入 :set paste
进入粘贴模式,再粘贴复制的内容。使用 vi
编辑文件时,:set paste
是一个高频使用命令。
配置好 $HOME/.bashrc
文件后,我们就可以执行 bash
命令将配置加载到当前 Shell 中了。
上述 Bash 脚本会自动创建工作目录 workspace
,以后所有的工作都可以在这个目录下展开。这样做可以带来以下几点好处:
- 可以使我们的
$HOME
目录保持整洁,便于以后的文件查找和分类。 - 如果哪一天
/
分区空间不足,可以将整个workspace
目录mv
到另一个分区中,并在/
分区中保留软连接,例如:/home/goer/workspace -> /data/workspace/
。 - 如果哪天想备份所有的工作文件,可以直接备份
workspace
。
在配置 PATH
变量时,建议将期望使用的命令所在的目录放在 $PATH
之前,这样 Linux 会优先匹配到我们期望的命令。例如:export PATH=$HOME/bin:$PATH
,如果有相同的命令 A
,Linux 会优先使用 $HOME/bin
目录下的 A
。
至此,我们就完成了 Linux 开发机的初步配置。
依赖安装和配置
在 Linux 系统上安装 miniblog 应用会依赖一些 RPM 包和工具,有些是直接依赖,有些是间接依赖。为了避免后续的操作出现依赖错误,例如因为包不存在而导致的编译、命令执行错误等,本节会预先安装和配置这些依赖包和工具。依赖安装和配置的具体步骤如下。
- 安装依赖。
你可以在 CentOS 系统上通过 yum
命令来安装需要的依赖工具,安装命令如下:
$ sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet lrzsz jq expat-devel openssl-devel openssl
如果系统提示 Package xxx is already installed.
,说明 xxx
包在系统中已经被安装过,你可以忽略该类报错提示。
- 安装 Git。
因为安装 miniblog 应用、执行 go get
命令等都会通过 Git 来下载安装包,所以我们还需要安装 Git。由于低版本的 Git 不支持 --unshallow
参数,而 go get
在安装 Go 包时会用到 git fetch --unshallow
命令,因此我们要确保安装一个高版本的 Git,具体的安装方法如下:
$ cd /tmp
$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.36.1.tar.gz
$ tar -xvzf git-2.36.1.tar.gz
$ cd git-2.36.1/
$ ./configure
$ make
$ sudo make install
$ git --version # 输出 git 版本号,说明安装成功
git version 2.36.1
安装好 Git 后,还需要把 Git 的二进制目录添加到 PATH
路径中,不然 Git 可能会因为找不到一些命令导致 Git 报错。你可以执行以下命令来添加目录:
$ tee -a $HOME/.bashrc <<'EOF'
# Configure for git
export PATH=/usr/local/libexec/git-core:$PATH
EOF
- 配置 Git。
你可以直接执行以下命令来配置 Git:
$ git config --global user.name "Lingfei Kong" # 用户名改成自己的
$ git config --global user.email "colin404@qq.com" # 邮箱改成自己的
$ git config --global credential.helper store # 设置 git,保存用户名和密码
$ git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
Go 编译环境安装和配置
安装 Go 的编译环境步骤比较简单,你只需下载源码包、设置相应的环境变量即可。具体步骤如下:
- 下载安装包。
可以从 Go 语言官方网站下载对应的 Go 安装包以及源码包,下面的命令会下载 go1.19.4
安装包:
$ wget -P /tmp/ https://go.dev/dl/go1.19.4.linux-amd64.tar.gz
- 解压并安装。
执行以下命令解压并安装 Go 编译工具和源码:
$ mkdir -p $HOME/go
$ tar -xvzf /tmp/go1.19.4.linux-amd64.tar.gz -C $HOME/go
$ mv $HOME/go/go $HOME/go/go1.19.4
- 配置
$HOME/.bashrc
文件。
你可以执行以下命令,将下列环境变量追加到 $HOME/.bashrc
文件中。
$ tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.19.4 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$WORKSPACE/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
- 测试是否安装成功。
如果你执行 go version
命令可以成功输出 Go 的版本,就说明 Go 编译环境安装成功。具体命令如下:
$ bash # 配置 `$HOME/.bashrc` 后,需要执行 `bash` 命令将配置加载到当前 Shell
$ go version
go version go1.19.4 linux/amd64
- 初始化工作区。
本课程使用的 Go 版本为 go1.19.4
,go1.19.4
支持多模块工作区,所以这里也需要初始化工作区。初始化命令如下:
$ mkdir -p $GOPATH && cd $GOPATH
$ go work init
$ go env GOWORK # 执行此命令,查看 go.work 工作区文件路径
/home/goer/workspace/golang/go.work
Protobuf 编译环境安装
因为本实战项目还实现了一个 gRPC 服务器,gRPC 服务器使用 Protobuf 作为数据交换格式,所以我们还需要安装 Protobuf 文件的编译器 protoc
。protoc
需要 protoc-gen-go
插件来完成 Go 语言的代码转换,因此我们需要安装 protoc
和 protoc-gen-go
这 2 个工具。它们的安装方法比较简单,具体分为以下两步:
- 安装
protoc
命令。
安装命令如下:
$ cd /tmp/
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v21.9/protobuf-cpp-3.21.9.tar.gz
$ tar -xvzf protobuf-cpp-3.21.9.tar.gz
$ cd protobuf-3.21.9/
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ protoc --version # 查看 protoc 版本,成功输出版本号,说明安装成功
libprotoc 3.21.9
提示:这里我们安装的
protoc
版本是 3.21.9。如果你安装了其他版本,后续执行protoc
命令报错,可能需要你根据所安装的版本进行命令参数适配。
在执行 autogen.sh
脚本时,如果遇到以下错误:
configure.ac:48: installing './install-sh'
configure.ac:109: error: required file './ltmain.sh' not found configure.ac:48: installing './missing'
benchmarks/Makefile.am: installing './depcomp'
conformance/Makefile.am:362: warning: shell python --version 2>&1: non-POSIX variable name
conformance/Makefile.am:362: (probably a GNU make extension)
conformance/Makefile.am:372: warning: shell python --version 2>&1: non-POSIX variable name
conformance/Makefile.am:372: (probably a GNU make extension)
parallel-tests: installing './test-driver'
autoreconf: automake failed with exit status: 1
可以通过以下命令配置 libtoolize
,并再次运行 autogen.sh
来解决:
$ libtoolize --automake --copy --debug –force
$ ./autogen.sh
- 安装
protoc-gen-go
命令。
安装命令如下:
$ go install github.com/golang/protobuf/protoc-gen-go@latest
当你第一次执行 go install
命令的时候,因为本地无缓存,需要下载所有的依赖模块,所以安装速度会比较慢,请你耐心等待。
如果你感觉 go install
卡在那里,可以添加 -x
参数打印具体的安装细节,通过细节你可以发现具体哪个步骤执行时间比较久:
$ go install -x github.com/golang/protobuf/protoc-gen-go@latest
Go 开发 IDE 安装和配置
编译环境准备完之后,你还需要一个代码编辑器才能开始 Go 项目开发。为了提高开发效率,你还需要将这个编辑器配置成 Go IDE。
目前,GoLand、VSCode 这些 IDE 都很优秀,但它们都是 Windows 系统下的 IDE。在 Linux 系统下我们可以选择将 Vim 配置成 Go IDE。熟练 Vim IDE 操作之后,开发效率不输 GoLand 和 VSCode。有多种方法可以配置一个 Vim IDE,这里我选择使用 vim-go 将 Vim 配置成一个 Go IDE。vim-go 是社区比较受欢迎的 Vim Go 开发插件,可以方便地将一个 Vim 配置成 Vim IDE。
Vim IDE 的安装和配置分为以下两步。
- 安装 vim-go。
$ rm -rf $HOME/.vim; mkdir -p ~/.vim/pack/plugins/start/
$ git clone --depth=1 https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
- Go 工具安装。
vim-go 会用到一些 Go 工具,比如在函数跳转时会用到 guru
、godef
工具,在格式化时会用到 goimports
,所以你也需要安装这些工具。
安装方式如下:执行 vi /tmp/test.go
,然后输入 :GoInstallBinaries
安装 vim-go 需要的工具。安装后的 Go IDE 常用操作的按键映射如下表所示:
按键 | 功能描述 |
---|---|
gd/ctrl + ]/ | :GoDef,跳转到光标所在标识符的声明或者定义的位置 |
Ctrl+I | :GoDefPop,跳转到跳转堆栈的上一个位置 |
Ctrl+O | 回上一次位置 |
Shift+K | :GoDoc,在新 Vim 窗口中显示光标处 word 或者给定 word 的 Go 文档 |
Shift+M | :GoInfo,显示光标所在的标识符的信息,比如显示函数的声明信息,变量的数据类型 |
Shift+T | :GoDefType,跳转到光标所在标识符的类型定义的位置 |
Shift+L | :GoAddTag,给结构体字段添加 json tags |
Shift+P | :GoImplements,列出一个接口的所有可能实现 |
Shift+R | :GoRename,重命名 Go 标识符 |
Shift+F | :GoFillStruct,给结构体变量填充默认值 |
Shift+C | :GoCallers,列出一个函数/方法的所有调用者 |
Shift+H | :GoSameIdsToggle,高亮光标下的所有标识符 |
Crl + N | 自动补全时下一个补全项 |
Ctrl + P | 自动补全时上一个补全项 |
提示:在 Vim IDE 中进行开发,使用最多的功能是:
:GoDef
、:GoDefPop
、:GoDoc
、Crl + N
、Ctrl + P
。
博客系统安装和配置
上面,我们部署好了 Go 基础开发环境。接下来就可以部署我们的实战项目了。安装和配置博客系统,主要包括以下几步:
想要安装 miniblog 系统,首先需要先下载 miniblog 源码。本书使用的 miniblog 源码分支为 v1.0.0。miniblog 源码下载命令如下:
$ mkdir -p $WORKSPACE/golang/src/github.com/marmotedu
$ cd $WORKSPACE/golang/src/github.com/marmotedu
$ git clone -b v1.0.0 --depth=1 https://github.com/marmotedu/miniblog
$ go work use ./miniblog # 将 miniblog 项目添加到当前 Go 工作区中
下载完源码后,记得访问 github.com/marmotedu/m… 点击右上角的 Star 按钮,Star 该项目 。
对于一个优秀的开源项目,在学习过程中,顺手 Star 是一个好的习惯。当你需要再学习或者参考时,可以在你的 Star 列表中找到该项目。否则,你只能通过记忆找到这个项目。另外 github.com/marmotedu/i… 也是一个值得 Star 的项目。
因为 miniblog 项目用到了 MariaDB 数据库来存储数据,而 miniblog 服务在启动时会先尝试连接 MariaDB 数据库,所以为了避免启动时连接数据库失败,这里我们先来安装 MariaDB 数据库。MariaDB 安装和配置步骤如下:
- 配置安装 MariaDB 需要的 Yum 源。配置命令如下:
$ sudo tee -a /etc/yum.repos.d/mariadb-10.5.repo <<'EOF'
# MariaDB 10.5 CentOS repository list - created 2020-10-23 01:54 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/centos8-amd64/
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=0
EOF
- 安装 MariaDB 和 MariaDB 客户端。安装命令如下:
$ sudo yum -y install MariaDB-server MariaDB-client
- 启动 MariaDB,并设置开机启动。启动命令如下:
$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb
- 设置
root
初始密码。初始化命令如下:
$ sudo mysqladmin -uroot password 'miniblog1234'
提示:执行
mysqladmin
一定要具有 root 权限,否则可能会报:mysqladmin: connect to server at '``localhost``' failed
错误。
- 登录数据库并创建
miniblog
用户。创建命令如下:
$ mysql -h127.0.0.1 -P3306 -uroot -p'miniblog1234' # 连接 MariaDB,-h 指定主机,-P 指定监听端口,-u 指定登录用户,-p 指定登录密码
MariaDB [(none)]> grant all on miniblog.* TO miniblog@127.0.0.1 identified by 'miniblog1234' ; Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.000 sec)
- 用
miniblog
用户登录 MariaDB,创建miniblog
数据库。创建命令如下:
$ cd $WORKSPACE/golang/src/github.com/marmotedu/miniblog
$ mysql -h127.0.0.1 -P3306 -u miniblog -p'miniblog1234'
MariaDB [(none)]> source configs/miniblog.sql;
MariaDB [miniblog]> use miniblog ;
Database changed
MariaDB [miniblog]> show tables;
+--------------------+
| Tables_in_miniblog |
+--------------------+
| post |
| user |
+--------------------+
2 rows in set (0.000 sec)
至此,我们已经成功安装并配置好 MariaDB 数据库。
安装部署 miniblog 服务分为以下几步。
- 安装配置文件、启动二进制文件。安装命令如下:
$ cd $WORKSPACE/golang/src/github.com/marmotedu/miniblog
$ sudo mkdir -p /data/miniblog /opt/miniblog/bin /etc/miniblog /var/log/miniblog # 创建需要的目录
$ make build # 编译源码生成 miniblog 二进制文件
$ sudo cp _output/platforms/linux/amd64/miniblog /opt/miniblog/bin # 安装二进制文件
$ sed 's/.\/_output/\/etc\/miniblog/g' configs/miniblog.yaml > miniblog.sed.yaml # 替换 CA 文件路径
$ sudo cp miniblog.sed.yaml /etc/miniblog/miniblog.yaml # 安装配置文件
$ make ca # 创建 CA 文件
$ sudo cp -a _output/cert/ /etc/miniblog/ # 将 CA 文件复制到 miniblog 配置文件目录
- 通过 Systemd 启动 miniblog 服务。配置命令如下:
$ sudo cp init/miniblog.service /etc/systemd/system/miniblog.service # 创建 Systemd Unit 文件
$ sudo systemctl daemon-reload # 重新加载 Systemd Unit 文件
$ sudo systemctl restart miniblog # 启动 miniblog 服务
$ sudo systemctl enable miniblog # 设置 miniblog 服务开机启动
- 测试 miniblog 服务是否成功安装。测试命令如下:
$ curl http://127.0.0.1:8080/healthz #测试 miniblog 服务是否成功安装
{"status":"ok"}
如果终端输出 {"status":"ok"}
,说明 miniblog 安装成功。
此外,你还可以通过 swagger
命令来启动一个在线的 Swagger API 文档,命令如下:
go
复制代码
$ go install github.com/go-swagger/go-swagger/cmd/swagger@latest
$ make swagger
2022/11/22 10:29:57 serving docs at http://localhost:65534/docs
之后,你可以通过 http://localhost:65534/docs
来访问 Swagger API文档:
测试功能:管理用户、管理博客
部署好 miniblog
服务后,你还可以参考 MiniBlog 操作指南 来执行命令管理用户、管理博客。
注意:部署完成之后,miniblog
会默认初始化一个 root
用户,密码为 miniblog1234
,使用 root
用户,你具有获取所有用户列表的权限。
小结
通过本节课,你可以提前部署好 miniblog 项目,为后面的学习准备好试验环境。在后面的学习中,你可以基于本节课所部署的环境,随时进行代码演练。