Comments (6)
Hey @cgiacomi, many web frameworks use the Context
feature WithValue
& Value
to extend the Ctx
. Fiber is really flexible and has a method called Locals (pass data between middlewares) which basically does the same. Let me show you an example:
package main
import "github.com/gofiber/fiber"
func main() {
app := fiber.New()
app.Post(Valiware())
app.Post("/register", func(c *fiber.Ctx) {
body := c.Locals("validator")
})
app.Listen(3000)
}
func Valiware() func(*fiber.Ctx) {
// initiate your validator once
vali := validator.New()
return func(c *fiber.Ctx) {
parsed, err := vali(c.Body())
if err == nil {
c.Locals("validator", parsed)
}
c.Next()
}
}
This is just a basic example, you can implement your validator logic in a 1000 ways.
from fiber.
@Fenny tnx and sorry for the late reply, I saw the Locals method, but wasn't sure what the intended use was. I will try to see how it works out with that.
By the way great work with the framework... I usually use Echo, but looking at Fiber it feels more like what I like. Again tnx for the great work!
from fiber.
I'm closing this issue, if you got further questions feel free to re-open!
from fiber.
Thanks for opening your first issue here! ๐ Be sure to follow the issue template!
from fiber.
Here is an example how echo framework allow to customize context and validator
https://echo.labstack.com/guide/context
https://echo.labstack.com/guide/request
from fiber.
Hello, @Fenny why there is an error while make that function you give?, sorry i am very new in go language. Go fiber v2
from fiber.
Related Issues (20)
- ๐ Doc: Fix code snippet indentation in /docs/api/middleware/keyauth.md HOT 4
- ๐ [Bug]: Isolation Issue with Parallel Subtests HOT 14
- ๐[Bug]: internal/storage/memory/memory_test HOT 1
- ๐ค [Question]: Validate request params HOT 5
- ๐ [v3 Proposal]: Refresh README.md HOT 2
- ๐ [v3 Proposal]: Improve more new features HOT 4
- ๐ [Bug]: (c *fiber.Ctx).ClearCookie() does absolutely nothing HOT 4
- ๐งน [v3 Maintenance]: Update docs to reflect fiber.Ctx struct to interface change HOT 1
- :bug: [BUG]: CORS panic with AcceptOrigins with whitespace HOT 1
- ๐งน [Maintenance]: Use Gotestsum for Test Workflow HOT 1
- ๐ค [Question]: Connect promhttp.Handler() to fiber app HOT 3
- ๐ [Bug]: Proxy middleware and Vite dev server on localhost, tcp4 127.0.0.1:5173: connect: connection refused HOT 6
- ๐ [Bug]: Enable go-require for testify-lint HOT 3
- ๐ค [Question]: When can the 3.0 version be applied to the production environment? HOT 3
- Explore Performance Optimization: Using a Pool for Memory Allocation in Client Package HOT 1
- Update Documentation and README.md for Client Package Refactor HOT 1
- ๐ [Bug]: local variable based on ctx.Method() is changed in goroutine HOT 5
- ๐ค [Question]: How can i keep a connection alive untill timeout or i response some message? HOT 1
- ๐ค [Question]: Custom Listen Function HOT 3
- CSRF Trusted Origins HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fiber.