spring Boot 集成 Swagger 時,Controller 方法缺少 @RequestMapping 注解導致 Swagger ui 無法正確顯示 API 接口,這是一個常見問題。
問題:開發者在 spring boot 項目中,某個 Controller 方法未添加 @RequestMapping 注解,導致 Swagger UI 報錯。 開發者原本認為接口路徑無需修改,但 Swagger 報錯后才意識到問題。通過在方法上添加多級路徑,解決了該問題,推測 Swagger 無法根據請求方式解析接口。
原因分析:@RequestMapping 注解是 Spring mvc 的核心注解,用于將 http 請求映射到 Controller 方法。 缺少該注解,spring mvc 無法確定哪個 URL 對應哪個方法,自然 Swagger UI 也無法正確解析和顯示 API。
疑問:如果不用 @RequestMapping,為何使用 Controller 進行地址映射?Controller 的核心功能是處理 HTTP 請求,@RequestMapping 正是建立 Controller 與 HTTP 請求映射的關鍵。 沒有 @RequestMapping,Controller 就無法接收任何請求,形同虛設。
解決方案:在需要 Swagger UI 顯示的 Controller 方法上添加 @RequestMapping 注解,明確指定 URL 路徑。 開發者通過添加多級路徑,實際上實現了 @RequestMapping 的功能,從而解決了 Swagger 報錯。 這再次強調了 @RequestMapping 注解在 Spring MVC 和 Swagger UI 中的重要性。