// Step 1: Mark as deprecated
app.Use(mobile.VersionMiddleware(mobile.VersionOptions{
Supported: []mobile.Version{{3, 0}, {2, 0}, {1, 0}},
Deprecated: []mobile.Version{{1, 0}},
}))
// Step 2: Log usage of deprecated versions
func deprecationLogger() mizu.Middleware {
return func(next mizu.Handler) mizu.Handler {
return func(c *mizu.Ctx) error {
v := mobile.VersionFromCtx(c)
if v.Before(2, 0) {
log.Warn("Deprecated API version used",
"version", v.String(),
"path", c.Request().URL.Path,
"device", mobile.DeviceFromCtx(c).DeviceID,
)
}
return next(c)
}
}
}
// Step 3: Remove support (after migration period)
app.Use(mobile.VersionMiddleware(mobile.VersionOptions{
Supported: []mobile.Version{{3, 0}, {2, 0}}, // v1 removed
}))