【一】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是否运行了,没有运行的话启动一下就行了
进入shell之后,db
查看当前的数据库
db
使用某个数据库:use database_name
use examples
当想使用的数据库不存在时,会自动创建数据库
默认端口 | 介绍 |
---|---|
27017 |
mongod 和 mongos 实例的默认端口。你可以通过 port 或 --port 改变该端口。 |
27018 |
设置 --shardsvr 运行变量或在配置文件里设置 clusterRole 为 shardsvr 时的默认端口。 |
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、前端登录账号对应的查询字段,如:mail 、uid 等; 2、自定义查询条件,其中 %s 会被前端登录账号替换,如:&(objectClass=user)(cn=%s) |
- |
YAPI_LDAP_LOGIN_EMAIL_POSTFIX | string | 登录邮箱后缀 | @163.com |
YAPI_LDAP_LOGIN_EMAIL_KEY | string | LDAP 数据库存储用户邮箱的字段 | |
YAPI_LDAP_LOGIN_USERNAME_KEY | string | LDAP 数据库存储用户名的字段 | name |
插件配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_PLUGINS | json | 要使用的插件列表。点击查看开源 YApi 插件列表 → 配置项数据格式: { "name": "插件名称,必须去除前缀 yapi-plugin-", "options": "插件配置,没有配置则不必设置" } 注意: 安装插件会运行 YApi 自带的打包命令,其内存消耗较大,因此,在安装插件时,物理机可用内存最好大于等于 4GB ,否则,易出现内存溢出错误,导致插件安装失败。 |
[{"name":"gitlab","options":{}}] |
使用刚刚配置的用户名和密码进行登录。居然跨域了
经过排查,发现mongo没有连接上
进入mongodb验证密码发现密码错误
mongodb改密码
db.changeUserPassword("yapi", "yapi")
重新启动yapi即可登录
导入api文档
查看使用文档
创建项目
导入json接口文档即可
需要安装一个插件,跳转文章已经做了详细的安装说明
安装完毕重新刷新即可
安装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文档安装工作告一段落,下面就可以真正开始开发了
作者:丶吃鱼的猫
出处:https://www.cnblogs.com/eatfishcat/p/15953162.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可站内留言咨询.