我正在嘗試向每個 API 添加自定義請求標頭,我可以通過向每個 API 添加一段代碼來做到這一點
`public ResponseDTO setNames(@RequestHeader(value="my-header",required = false HttpServletRequest httpServletRequest) throws Exception {}`
但是我希望這可以自動完成,就像我們在創建新 API 時默認有授權標頭一樣。如何做到這一點誰能告訴我一個好的解決方案
在此處輸入影像描述
uj5u.com熱心網友回復:
如果您正在使用,您可以使用以下內容springdoc-openapi
@Configuration
class CustomizeSpringDoc {
@Bean
fun publicApi(): GroupedOpenApi {
return GroupedOpenApi.builder()
.group("add-auth-header")
.addOperationCustomizer { operation, handlerMethod ->
operation.parameters.add(
HeaderParameter()
.name("Authorization")
.description("Access Token")
)
operation
}
.build()
}
}
如果您正在使用spring-fox,您可以參考以下鏈接globalRequestParameters:
http ://springfox.github.io/springfox/docs/current/#quick-start-guides
uj5u.com熱心網友回復:
您可以OpenAPI specification (previously Swagger specification)在 Spring-boot 專案中使用,在其中定義您的 API 以及Request/Response標頭以及您可能想要回傳的任何錯誤模型或您想要捕獲的任何其他自定義欄位!
通過定義,您將有權提及諸如required, minLength, maxLengthetc之類的屬性
openAPI 插件會處理剩下的事情!
您可以參考這些鏈接一目了然!
https://www.javainuse.com/spring/boot_swagger3
https://www.baeldung.com/spring-rest-openapi-documentation
uj5u.com熱心網友回復:
要對每個請求進行標頭驗證,您可以使用Filter或HandlerInterceptors。
Filters在請求到達之前攔截請求DispatcherServlet,使它們成為粗粒度任務的理想選擇,例如:
- 驗證
- 記錄和審計
- 影像和資料壓縮
- 我們希望從 Spring MVC 中解耦的任何功能
HandlerIntercepors另一方面,攔截 theDispatcherServlet和 our之間的請求Controllers。這是在 Spring MVC 框架內完成的,提供對 Handler 和 ModelAndView 物件的訪問。
這減少了重復并允許更細粒度的功能,例如:
- 處理橫切關注點,例如應用程式日志記錄
- 詳細的授權檢查
- 操作 Spring 背景關系或模型
來源:https ://www.baeldung.com/spring-mvc-handlerinterceptor-vs-filter
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/494915.html
