diff --git a/content/en/docs/hertz/tutorials/third-party/middleware/swagger.md b/content/en/docs/hertz/tutorials/third-party/middleware/swagger.md
index fa55f702d6f..a48844dd945 100644
--- a/content/en/docs/hertz/tutorials/third-party/middleware/swagger.md
+++ b/content/en/docs/hertz/tutorials/third-party/middleware/swagger.md
@@ -1,11 +1,288 @@
---
title: "Swagger"
-date: 2022-10-06
+date: 2025-12-04
weight: 8
keywords: ["Swagger", "RESTful API"]
description: "Hertz middleware to automatically generate RESTful API documentation with Swagger 2.0."
---
+> **⚠️ Deprecated**
+>
+> The `hertz-contrib/swagger` middleware is now deprecated.
+> Hertz recommends all users to migrate to the official `swaggo/swag` toolchain using the [Hertz HTTP Adaptor](../../basic-feature/http-adaptor/).
+>
+> See the migration guide below.
+
+## Migration Guide
+
+1. Remove deprecated dependencies
+
+```sh
+github.com/hertz-contrib/swagger
+github.com/swaggo/files
+```
+
+2. Install official swag generator
+
+```sh
+go install github.com/swaggo/swag/cmd/swag@latest
+```
+
+3. Replace swagger handler
+
+If the project has already been set up, replace the code below.
+
+```go
+// Before (using hertz-contrib/swagger)
+import "github.com/hertz-contrib/swagger"
+import swaggerFiles "github.com/swaggo/files"
+
+url := swagger.URL("http://localhost:8888/swagger/doc.json")
+h.GET("/swagger/*any", swagger.WrapHandler(swaggerFiles.Handler, url))
+
+// After (using http adaptor)
+import "github.com/cloudwego/hertz/pkg/common/adaptor"
+import httpSwagger "github.com/swaggo/http-swagger"
+
+h.GET("/swagger/*any", adaptor.HertzHandler(httpSwagger.WrapHandler))
+```
+
+If starting a new project, follow the sample code below as an example.
+
+```go
+package main
+
+import (
+ "context"
+
+ // Path to generated docs
+ _ "project/docs"
+
+ "github.com/cloudwego/hertz/pkg/app"
+ "github.com/cloudwego/hertz/pkg/app/server"
+ "github.com/cloudwego/hertz/pkg/common/adaptor"
+ httpSwagger "github.com/swaggo/http-swagger"
+)
+
+// PingHandler handler
+// @Summary Summary
+// @Description Description
+// @Accept application/json
+// @Produce application/json
+// @Router /ping [get]
+func PingHandler(c context.Context, ctx *app.RequestContext) {
+ ctx.JSON(200, map[string]string{
+ "ping": "pong",
+ })
+}
+
+// @title HertzTest
+// @version 1.0
+// @description This is a demo using Hertz.
+
+// @contact.name hertz
+// @contact.url https://github.com/cloudwego/hertz
+
+// @license.name Apache 2.0
+// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
+
+// @host localhost:8888
+// @BasePath /
+// @schemes http
+func main() {
+ h := server.Default()
+
+ h.GET("/ping", PingHandler)
+
+ // Swagger endpoint
+ h.GET("/swagger/*any",
+ adaptor.HertzHandler(
+ httpSwagger.WrapHandler,
+ ),
+ )
+
+ h.Spin()
+}
+```
+
+4. Generate Swagger docs
+
+```sh
+swag init
+```
+
+5. Run program
+
+Start the Hertz server.
+
+```sh
+go run main.go
+```
+
+On a web browser, go to http://localhost:8888/swagger/index.html or whichever address that is configured to see the Swagger UI.
+
+6. Provide custom Swagger UI
+
+For users who want to create their own custom UI, they will need to download the Swagger UI dist files, and serve the UI files as static assets.
+Copy the following files from [swagger-ui/dist](https://github.com/swagger-api/swagger-ui/tree/master/dist) and place them in `swagger-ui/`.
+- https://github.com/swagger-api/swagger-ui/blob/master/dist/favicon-16x16.png
+- https://github.com/swagger-api/swagger-ui/blob/master/dist/favicon-32x32.png
+- https://github.com/swagger-api/swagger-ui/blob/master/dist/swagger-ui.css
+- https://github.com/swagger-api/swagger-ui/blob/master/dist/swagger-ui-bundle.js
+- https://github.com/swagger-api/swagger-ui/blob/master/dist/swagger-ui-standalone-preset.js
+
+Create an `index.html` file in the same directory with the following template. The original configuration options present in the old `hertz-contrib/swagger` middleware can be directly configured in the HTML file.
+
+**Note: The HTML file below is just a sample and should be modified accordingly to the user's needs.**
+
+```html
+
+
+