📚 Doc: Add caution note about custom constraints overriding built-in constraints in routing guide

pull/3356/head
JIeJaitt 2025-04-01 09:33:28 +08:00
parent f16644cd9f
commit 87203a5d0d
2 changed files with 6 additions and 4 deletions

View File

@ -250,7 +250,9 @@ app.Get("/:test<int>?", func(c fiber.Ctx) error {
Custom constraints can be added to Fiber using the `app.RegisterCustomConstraint` method. Your constraints have to be compatible with the `CustomConstraint` interface.
:::caution
Attention, custom constraints can now override built-in constraints. If a custom constraint has the same name as a built-in constraint, the custom constraint will be used instead. This allows for more flexibility in defining route parameter constraints.
:::
It is a good idea to add external constraints to your project once you want to add more specific rules to your routes.
For example, you can add a constraint to check if a parameter is a valid ULID.

View File

@ -55,14 +55,14 @@ func New(config ...Config) fiber.Handler {
// - context.Context: Retrieves request ID from context values
func FromContext(c any) string {
switch ctx := c.(type) {
case context.Context:
if rid, ok := ctx.Value(requestIDKey).(string); ok {
return rid
}
case fiber.Ctx:
if rid, ok := ctx.Locals(requestIDKey).(string); ok {
return rid
}
case context.Context:
if rid, ok := ctx.Value(requestIDKey).(string); ok {
return rid
}
default:
log.Errorf("Unsupported context type: %T. Expected fiber.Ctx or context.Context", c)
}