go-zero 如何在任意地方获取yaml中的值

这篇具有很好参考价值的文章主要介绍了go-zero 如何在任意地方获取yaml中的值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、config配置文件中新增全局变量

package config

import "github.com/zeromicro/go-zero/rest"

type Config struct {
	rest.RestConf
	DB struct {
		DataSource string
	}
	Redis struct {
		Addr     string
		PassWord string
		UserName string
	}
	Auth struct {
		AccessSecret string
		AccessExpire int64
	}
}

var GlobalConfig Config

2、main函数所在的入口文件为其赋值

package main

import (
	"flag"
	"fmt"

	"go/application/basics/internal/config"
	"go/application/basics/internal/handler"
	"go/application/basics/internal/svc"

	"github.com/zeromicro/go-zero/core/conf"
	"github.com/zeromicro/go-zero/rest"
)

var configFile = flag.String("f", "etc/basics-api.yaml", "the config file")

func main() {
	flag.Parse()

	var c config.Config
	conf.MustLoad(*configFile, &c)
	config.GlobalConfig = c
	server := rest.MustNewServer(c.RestConf)
	defer server.Stop()

	ctx := svc.NewServiceContext(c)
	handler.RegisterHandlers(server, ctx)

	fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
	server.Start()
}

3、然后在想要使用的地方直接使用就可以了。
比如使用yaml中配置的JWT认证的key文章来源地址https://www.toymoban.com/news/detail-806493.html

config.GlobalConfig.Auth.AccessSecret

到了这里,关于go-zero 如何在任意地方获取yaml中的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【go-zero】go-zero分布式锁实战 | apifox测试go-zero分布式锁方式

    包地址:github.com/zeromicro/go-zero/core/stores/redis 使用场景: 为了防止并发的下载相同的excel 我们通过redis锁来控制请求相同的excel下载 个人思路: req为API传入的请求参数 然后加密成md5的字符串,这样可以处理 相同的请求

    2024年02月15日
    浏览(42)
  • 【go-zero】go-zero阿里云oss 前端上传文件到go-zero API服务 并在k8s pod中创建文件 并推送到阿里云oss 最佳实践

    问题:在本地通过上传文件,然后将文件推送到aliyun的oss中,是没问题的 但是部署到了k8s中,则出现了问题,一直报错没有创建的权限 思路:开始认为应该将该文件挂载到configmap中,然后通过这种方式修改了deployment和dockerfile。最终发现应该是go的创建文件路径方式搞错了,

    2024年02月13日
    浏览(48)
  • go-zero学习 第一章 基础

    因官网重新改版,本文是基于官网最新版本的文档并整合旧文档重新进行全面总结、归纳。 本文主要对官网 快速开始 进行提炼总结,未涉及部分将在后续章节陆续补充完善。 go-zero 的 goctl 工具下载 验证 goctl 的安装结果: goctl 一键安装 protoc 、 protoc-gen-go 、 protoc-gen-go-grp

    2024年02月09日
    浏览(50)
  • go-zero系列:接入Prometheus

    参考文档:https://zhuanlan.zhihu.com/p/463418864 https://prometheus.io/download/ 进入下载文件夹,比如prometheus-2.44.0.windows-amd64。 然后双击Prometheus.exe启动软件。 启动后,可以访问 http://127.0.0.1:9090/。就能查看Prometheus后台。 然后重启go-zero项目,能看到输出日志:Starting prometheus agent at 0.0.

    2024年02月16日
    浏览(40)
  • go-zero 开发之安装 etcd

    本文只涉及 Linux 上的安装。 二进制安装 下载二进制安装包 下载地址示例: 解压二进制安装包 删除二进制安装包 版本检查 启动 etcd 往 etcd 写读数据 Docker 安装 etcd 主要使用 Google 容器注册表(gcr.io)下的 gcr.io/etcd-development/etcd 仓库来存储其容器镜像。作为次要选项,它还使

    2024年02月04日
    浏览(45)
  • go-zero微服务实战——服务构建

    接上一节go-zero微服务实战——基本环境搭建。搭建好了微服务的基本环境,开始构建整个微服务体系了,将其他服务也搭建起来。 order的目录结构,如下 根目录 api服务 rpc服务 自定义逻辑层logic 自定义参数层models 自定义工具层util api服务和rpc服务都是基于goctl一键生成的,当

    2024年02月14日
    浏览(47)
  • go-zero的服务发现源码阅读

    服务发现原理与grpc源码解析_wangxiaoangg的博客-CSDN博客   go-zero rpc demo官方文档:rpc编写与调用 | go-zero 目录 一 服务注册 1. 创建rpc服务 2. 启动rpc服务 3. registerEtcd做了什么 4. discov.NewPublisher 服务发布者 二 服务发现 1.定义注册resolver 2.解析etcd地址创建链接 3.update方法 在看rp

    2024年02月06日
    浏览(62)
  • 使用go-zero快速构建微服务

    本文是对 使用go-zero快速构建微服务 [1] 的亲手实践 编写API Gateway代码 mkdir api goctl api -o api/bookstore.api cd api goctl api go -api bookstore.api -dir . go run bookstore.go -f etc/bookstore-api.yaml 启动API Gateway服务,默认侦听在8888端口 因为默认生成的 api/etc/bookstore-api.yml 为: 按提示下载,再次运行

    2024年02月13日
    浏览(65)
  • go-zero微服务实战——基本环境搭建

    项目架构来源于go-zero实战:让微服务Go起来。此对该项目有所删减,相对简单适合初学者。 省去了项目中每个服务占用独立docker的过程,省略了docker-compose的构建过程。每个服务是一个独立的程序不依赖与容器。 安装goctl 安装protoc 安装go-zero 生成api标准api服务 生成rpc服务 生

    2024年02月07日
    浏览(45)
  • go-zero学习 第三章 微服务

    1.1 API服务模块 goctl 使用 api 文件生成 api服务 命令: 1.2 RPC服务模块 goctl 使用 protoc 文件生成 rpc服务 命令: 注意: --go_out 、 --go-grpc_out 、 --zrpc_out 三者配置的路径需要完全一致,否则会报下列错误。 基础代码:已生成基本的API服务、RPC服务。 这里以API服务调用RPC服务的登

    2024年02月16日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包