【一】golang实战之环境搭建

安装go

我是在windows下开发,所以只需要在win10 下安装go即可。安装比较无脑,一路点击next即可。初学go建议采用goland,代码提示和补全很强大。

对于当前时间安装的go,应该没人会去使用gopath或者vendor了,如果工作中遇到直接google即可。

goland

安装

goland是jerBrains针对go开发的IDE,安装也比较无脑,一路next即可。goland不想pycharm有社区版,golngd只有收费版本,买不起正版的同学可以试试jetBrains的开源计划,可以免费使用goland。

配置

  • 安装自己顺手的keymap
  • tools下的file watcher安装fmt和goimports,保存时会自动格式化代码

修改go模块下载地址

go env -w GOPROXY=https://goproxy.io,direct

开启go模块化

go env -w GO111MODEULE=on

安装mongoDb

准备事项

首先得有一个安装好了的Ubuntu 20.04,然后更新下系统

sudo apt-get update
sudo apt-get upgrade

安装依赖

sudo apt-get install gnupg

添加公钥

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

添加源

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

更新

sudo apt-get update

安装

sudo apt-get install -y mongodb-org

为防止意外升级,可以将mongodb固定到当前版本

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

如果采用的默认安装,那么数据目录为/var/lib/mongodb,日志目录为/var/log/mongodb

mongodb默认用户为mongodb,配置文件在/etc/mongod.cong

远程连接

如果想远程连接,需要注释掉# bindIp: 127.0.0.1,另外最好开启密码登录auth=true

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authiorzation: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

使用mongodb

采用mongo命令进入mongodb的shell

mongo

# MongoDB shell version v4.4.5
# connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
# Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
# connect@src/mongo/shell/mongo.js:374:17
# @(connect):2:6
# exception: connect failed
# exiting with code 1

如果出现注释中的提示,查看下mongo是否运行了,没有运行的话启动一下就行了

image-20210420185835552

image-20210420185857049

image-20210420185752484

进入shell之后,db查看当前的数据库

db

image-20210420185912083

使用某个数据库:use database_name

use examples

image-20210420185928179

当想使用的数据库不存在时,会自动创建数据库

默认端口 介绍
27017 mongodmongos 实例的默认端口。你可以通过 port--port 改变该端口。
27018 设置 --shardsvr 运行变量或在配置文件里设置 clusterRoleshardsvr 时的默认端口。
27019 设置 --configsvr 运行变量或在配置文件中将 clusterRole 设置为 configsvr 时的默认端口。
28017 系统状态网页的默认端口。系统状态网络页面永远可以在比 port 大 1000 的端口反问。

创建管理员

创建管理员需要进入admin数据库

use admin

show users

创建用户

db.createUser({user:"root",pwd:"hhlin1118",roles:["root"]})

此时再查看就可以看到用户信息了

{
        "_id" : "admin.root",
        "userId" : UUID("ecfe5e44-36b1-4735-9d1b-d9180c15b92e"),
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}

安装yapi

YApi 是高效易用功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

本系列中用到的第三方服务均采用docker快速部署和配置。

安装虚拟机,安装yapi,根据api文档进行开发。本人虚拟机采用的是ubuntu,因为本人经常使用,所以没有安装课程中的centos。安装虚拟机的过程请自行百度/Google。

docker安装yapi的配置

通过环境变量配置的选项会覆盖通过 config.json 或者 config.js 配置的选项。

基础配置

环境变量名称 类型 说明 示例
YAPI_ADMIN_ACCOUNT string 管理员账号(邮箱) admin@foo.bar
YAPI_ADMIN_PASSWORD string 管理员密码 adm1n
YAPI_CLOSE_REGISTER boolean 是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户 true
YAPI_NPM_REGISTRY string npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 https://registry.npm.taobao.org

数据库配置

环境变量名称 类型 说明 示例
YAPI_DB_SERVERNAME string MongoDB 服务地址 yapi-mongo
YAPI_DB_PORT number MongoDB 服务端口 27017
YAPI_DB_DATABASE string 使用的 MongoDB 数据库 yapi
YAPI_DB_USER string 登录 MongoDB 服务的用户名 root
YAPI_DB_PASS string 登录 MongoDB 服务的用户密码 r00t
YAPI_DB_AUTH_SOURCE string MongoDB 身份认证所用库 admin
YAPI_DB_CONNECT_STRING string 使用 MongoDB 集群时配置 mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true
YAPI_DB_OPTIONS json Mongoose 连接 MongoDB 服务时的额外选项,一般不用设置。请参考: Mongoose.prototype.connect() {}

邮件配置

环境变量名称 类型 说明 示例
YAPI_MAIL_ENABLE boolean 是否启用 true
YAPI_MAIL_HOST string 邮件服务地址 smtp.163.com
YAPI_MAIL_PORT number 邮件服务端口 465
YAPI_MAIL_FROM string 发送人邮箱 foo@163.com
YAPI_MAIL_AUTH_USER string 登录邮件服务的用户名 bar@163.com
YAPI_MAIL_AUTH_PASS string 登录邮件服务的用户密码 f00bar
YAPI_MAIL_OPTIONS json 传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport {"tls":{"rejectUnauthorized":false}}

LDAP 登录配置

点击查看 YApi 仓库下 LDAP 相关的 issues 👉

环境变量名称 类型 说明 示例
YAPI_LDAP_LOGIN_ENABLE boolean 是否启用 true
YAPI_LDAP_LOGIN_SERVER string LDAP 服务地址 ldap://ldap.foo.bar
YAPI_LDAP_LOGIN_BASE_DN string 登录 LDAP 服务的用户名 cn=admin,dc=foo,dc=bar
YAPI_LDAP_LOGIN_BIND_PASSWORD string 登录 LDAP 服务的用户密码 f00bar
YAPI_LDAP_LOGIN_SEARCH_DN string 查询用户数据的路径 ou=users,dc=foo,dc=bar
YAPI_LDAP_LOGIN_SEARCH_STANDARD string 支持两种值: 1、前端登录账号对应的查询字段,如:mailuid 等; 2、自定义查询条件,其中 %s 会被前端登录账号替换,如:&(objectClass=user)(cn=%s) -
YAPI_LDAP_LOGIN_EMAIL_POSTFIX string 登录邮箱后缀 @163.com
YAPI_LDAP_LOGIN_EMAIL_KEY string LDAP 数据库存储用户邮箱的字段 mail
YAPI_LDAP_LOGIN_USERNAME_KEY string LDAP 数据库存储用户名的字段 name

插件配置

环境变量名称 类型 说明 示例
YAPI_PLUGINS json 要使用的插件列表。点击查看开源 YApi 插件列表 → 配置项数据格式: { "name": "插件名称,必须去除前缀 yapi-plugin-", "options": "插件配置,没有配置则不必设置" } 注意: 安装插件会运行 YApi 自带的打包命令,其内存消耗较大,因此,在安装插件时,物理机可用内存最好大于等于 4GB,否则,易出现内存溢出错误,导致插件安装失败。 [{"name":"gitlab","options":{}}]

image-20211123225402927

image-20211123225441932

使用刚刚配置的用户名和密码进行登录。居然跨域了

image-20211123231608834

经过排查,发现mongo没有连接上

image-20211123232803457

进入mongodb验证密码发现密码错误

mongodb改密码

db.changeUserPassword("yapi", "yapi")

重新启动yapi即可登录

导入api文档

image-20211123233009989

查看使用文档

image-20211123234535811

创建项目

image-20211123234606310

image-20211123234615368

导入json接口文档即可
image-20211123234704423

image-20211123234655584

需要安装一个插件,跳转文章已经做了详细的安装说明

image-20211123234829979

安装完毕重新刷新即可

image-20211123235024709

安装protoc

因为使用到了protobuf进行rpc通讯,所以要安装protoc编译protobuf

命令行执行如下命令

go get github.com/golang/protobuf/protoc-gen-go
go get -u google.golang.org/grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

至此,api文档安装工作告一段落,下面就可以真正开始开发了

posted @ 2022-03-01 23:28  丶吃鱼的猫  阅读(672)  评论(0编辑  收藏  举报