将环境值加载到GO结构中
#开源 #go #library

env库

该库的目标是能够将环境值加载到GO结构中。

此库是一个简单的库,它加载了四种类型的值,并且不涵盖数组或任何其他逻辑,除非此处解释。

支持的类型为**string,int,int32,int64,float32,float64,bool**

安装

如果您已经在GO中设置了项目并且要安装库,那么您需要做的就是 go get github.com/diarselimi/dev 就是这样。

基本用法

安装此库后,您可以通过导入并通过参考。

以下示例将向您展示,如何将其与包含标签作为对环境变量的引用的简单结构一起使用。

package main

import (
    "fmt"
    "github.com/Diarselimi/env"
)

type ClientConfig struct {
    BaseUrl string `env:"API_BASE_URL"`
    ClientId string `env:"API_CLIENT_ID"`
    Secret string `env:"API_SECRET"`
}

func main() {
    config := ClientConfig{}
    env.PopulateWithEnv(&config)

    fmt.Println(config)
}

高级用法

在另一个示例中,您将看到如何通过在所有环境变量中拥有一个中心位置,分布在自己的结构中。

这里最重要的部分是命名为**obj的标签类型。**

package main

import (
    "fmt"
    "github.com/Diarselimi/env"
)

type Config struct {
    SomeApiConfig ClientConfig 'obj:""'
    MysqlConfig SqlConfig 'obj:""'
}

type ClientConfig struct {
    BaseUrl string `env:"API_BASE_URL"`
    ClientId string `env:"API_CLIENT_ID"`
    Secret string `env:"API_SECRET"`
}

type SqlConfig struct {
    Host string 'env:"MYSQL_HOST"'
    User string 'env:"MYSQL_USER"'
}

func main() {
    config := Config{}
    env.PopulateWithEnv(&config)

    fmt.Println(config)
}

现在,您可以在结构中看到包含**env****obj**的标签类型,库将查看并填充必要的数据。

贡献

库非常新,并且不包含太多逻辑,如果您是新手,并且想为此项目做出贡献,请随时创建拉动请求,我将查看您的代码。

您在项目很小时开始贡献的机会更高,因为没有学习曲线只有三种方法可以完成工作。

您可以通过编写测试方案来支持,这也有助于使图书馆在未来的功能上更加稳定。

如果您还没有准备好贡献,那么我将感谢其他任何支持GitHub repository,例如给它一个明星 - 如果您认为这是值得的。

结论

env库将为您提供一个简单的功能,可以帮助您将环境值加载到GO结构中。

如果您想在开源中做出贡献,那么这是您这样做的机会。

您可以将此库用于您的项目,也可以通过添加对数组等其他类型的支持来贡献。