Custom Go time & duration implementation.
Duration is a wrapper around time that simplifies serialization/deserialization of time.
package main
import (
timex "go.strv.io/time"
)
type config struct {
AccessTokenExpiration timex.Duration `json:"access_token_expiration"`
RefreshTokenExpiration timex.Duration `json:"refresh_token_expiration"`
}
func main() {
cfg := config{}
data, _ := os.ReadFile("config.json")
_ = json.Unmarshal(data, &cfg)
}// Content of config.json
{
"access_token_expiration": "1h",
"refresh_token_expiration": "30d"
}As can be seen, there is an option to use days directly, so there is no need to use 720h in case of refresh_token_expiration in the example.