【一】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是否运行了,没有运行的话启动一下就行了

【一】golang实战之环境搭建

【一】golang实战之环境搭建

【一】golang实战之环境搭建

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

db

【一】golang实战之环境搭建

使用某个数据库:use database_name

use examples

【一】golang实战之环境搭建

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

默认端口 介绍
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+mongodb+nodejs


下一篇:云服务器搭建yapi