v1.27.0
Release v1.27.0
✨ Features
-
UseMiddlewareWithContainer
for Custom Middleware with Container Access
Introduced theUseMiddlewareWithContainer
method, which allows custom middleware to access the application's container. This provides access to essential services such as logging, configuration, and database instances, enabling middleware to modify request processing dynamically.Example Usage:
import ( "fmt" "net/http" "gofr.dev/pkg/gofr" "gofr.dev/pkg/gofr/container" ) func main() { // Create a new GoFr application instance a := gofr.New() // Add custom middleware with container access a.UseMiddlewareWithContainer(customMiddleware) .... } // Define middleware with container access func customMiddleware(c *container.Container, handler http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { c.Logger.Log("Hey! Welcome to GoFr") handler.ServeHTTP(w, r) }) } `
-
Migrations Support in MongoDB
GoFr now introduces support for data migrations in MongoDB, enabling seamless modifications to your database schema and data. This includes adding new fields, modifying data types of existing fields, setting or removing indexes, and applying constraints to collections. All changes are meticulously tracked in the GoFr Migrations Table, ensuring a reliable and auditable history of database updates.
🛠️ Fixes
-
Remote Log URL Setup
Resolved an issue where logs fetched from the remote log URL were missing correlation IDs. Logs now consistently include the correlation ID, ensuring better traceability. -
Entity DataType Documentation Update
Enhanced the documentation for theAdd-rest-handler
feature by specifying supported data types in the entity structure, improving usability and reducing confusion. -
SQL Logs Level Adjustment
Fixed the log level for successful SQL connections, which was mistakenly set to debug. It is now appropriately logged at the info level, aligning with logging best practices.