springdoc-openapi v2(swagger) request object query encoding issue
After migrating from springdoc-openapi v1 to v2, we started experiencing issues with requests using a query param DTO. Previously, requests were structured as standard query parameters, but now they are being URL-encoded, leading to errors.
Here is an example of a swagger request object query:
{
"searchType": "ACCOUNT_ID",
"searchKeywords": [
"12345"
],
"types": [
"NORMAL",
"WITHDRAW"
]
}
With springdoc-openapi v1, the request URL looked like this:
http://localhost:8080/search?searchType=ACCOUNT_ID&searchKeywords=12345&types=NORMAL&types=WITHDRAW
However, after upgrading to springdoc-openapi v2, the request URL changed to the following (with the query parameters URL-encoded):
http://localhost:8080/search?searchType=ACCOUNT_ID&searchKeywords=%5B%2212345%22%5D&types=%5B%22NORMAL%22%2C%22WITHDRAW%22%5D
Decoded, it looks like:
http://localhost:8080/search?searchType=ACCOUNT_ID&searchKeywords=["12345"]&types=["NORMAL","WITHDRAW"]
Although the requests work fine when using curl, it seems to be an issue with the new version of springdoc-openapi v2(swagger). It doesn't appear to be a application problem.
How should we address this?
I am using org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0
We have same problem
Set @ParameterObject in method for DTO class