validator
uuid
Our great sponsors
validator | uuid | |
---|---|---|
68 | 18 | |
15,503 | 4,999 | |
1.8% | 1.4% | |
7.4 | 7.1 | |
1 day ago | 22 days ago | |
Go | Go | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
validator
- API completa em Golang - Parte 7
- API completa em Golang - Parte 3
-
Is there any equivalent to pydantic, serde, etc?
go-playground/validator
Go uses zero values to provide sensible default values. It's a design choice. With a quick Google you'll find several libraries such as https://github.com/go-playground/validator or https://github.com/asaskevich/govalidator. I use validator whenever I need to ensure any JSON I unmarshalled is correct.
- API completa em Golang - Parte 1
-
Yet another validator 0.9.5
Now it has most of the Playground validator's common checks and a few own tricks.
-
Openapi server generation
In Go I've found this package - https://github.com/go-playground/validator. It seems popular in the community, but it is tag-based. It looks like if I wanted to use it - I would have to basically duplicate structs.
-
Request Validations in Go REST API
I use https://github.com/go-playground/validator, but honestly, I am not a fan. I just haven’t found anything better.
-
Tools besides Go for a newbie
IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here
-
popularity behind pydantic
I work in Go now, it's crazy poor in that regard - let's just mention for instance "zero values" ( so things can remain uninitialized with a default value you can't choose ), recurring questions around "empty vs null vs not set", and everyone using go-playground/validator where you attach rules as comments ( "tags" really, but it's barely the same thing ) that are interpreted at runtime, extremely cumbersome to extend. And all that with an insane amount of boilerplate and footguns. But what really takes the cake: if you dare saying it's extremely weak you'll get shut down by the community. You're supposed to praise it, and indeed, hate python ( you know, that toy language that didn't evolve since 2008 ).
uuid
-
Any way of blocking or preferring a package?
I use Google's UUID package a lot. But every time I refer to it in a new package, the language server picks up https://github.com/gofrs/uuid instead of https://github.com/google/uuid and then complains that the gofrs package isn't in go.mod. I assume because it's the first alphabetically (though this seems like a huge supply chain security loophole).
-
Authentication for HTMX app
Just store one single UUID as a token in a client's cookie (use https://github.com/google/uuid for ex), and associate that to a user ID (or anything else relevant in your case), and an expiry date for example
-
Which UUID package do you use? and why?
Depends on your needs I think, I generally just use github.com/google/uuid like /u/wowsux mentioned it supports v1 through v5 of the UUID spec.
github.com/google/uuid just works
-
Create a REST API with Go
And we are also going to use google/uuid to generate random uuids.
-
Go Lang for .NET devs
You can see the same naming dilemma in many Go library implementations, i.e., where a package is used to organize functions related to a single a type (https://github.com/google/uuid) vs organizing code of related functionality (https://github.com/golang/go/tree/master/src/math).
-
goes - CQRS & Event-Sourcing Toolkit
Type inference is not perfect yet (especially for functional options). Also not being able to add type parameters to methods is a bit annoying (can be worked around using package-level functions) but besides that generics fit quite nicely into the library. If type inference gets better then I think I can even remove the hard dependency on github.com/google/uuid and let users use custom types for ids.
-
Web dev learning path advice
Learn how to create UUIDs: https://github.com/google/uuid
-
Faster implementation for uuid.NewString()
We are using https://github.com/google/uuid and its method: uuid.NewString(). During our profiling we have found this method to be one of the most expensive calls in our system. Even larger than some of our json.Marshal/UnMarshal code.
-
💭 How to make clear & pretty error messages from the Go backend to your frontend?
So, we have a field with type uuid.UUID which we create with the package google/uuid, which we want to check with the built-in validator uuid.Parse() of that package. All we need to do is add a new RegisterValidation method to the NewValidator function (described above) with simple logic code:
What are some alternatives?
ozzo-validation - An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags.
uuid - A UUID package originally forked from github.com/satori/go.uuid
govalidator - [Go] Package of validators and sanitizers for strings, numerics, slices and structs
grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC
go.uuid - UUID package for Go
xid - xid is a globally unique id generator thought for the web
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
viper - Go configuration with fangs
jwt - ⚠️ Deprecated repository, available within Fiber Contrib.
fiber-swagger - fiber middleware to automatically generate RESTful API documentation with Swagger 2.0.
Validate - ⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。
Echo - High performance, minimalist Go web framework