mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-23 14:40:00 +00:00
Assert versionRequired and defaultVersion
Closes gh-35387
This commit is contained in:
+7
-5
@@ -61,9 +61,9 @@ public class DefaultApiVersionStrategy implements ApiVersionStrategy {
|
||||
* @param versionResolvers one or more resolvers to try; the first non-null
|
||||
* value returned by any resolver becomes the value used
|
||||
* @param versionParser parser for raw version values
|
||||
* @param versionRequired whether a version is required; if a request
|
||||
* does not have a version, and a {@code defaultVersion} is not specified,
|
||||
* validation fails with {@link MissingApiVersionException}
|
||||
* @param versionRequired whether a version is required leading to
|
||||
* {@link MissingApiVersionException} for requests that don't have one;
|
||||
* by default set to true unless there is a defaultVersion
|
||||
* @param defaultVersion a default version to assign to requests that
|
||||
* don't specify one
|
||||
* @param detectSupportedVersions whether to use API versions that appear in
|
||||
@@ -74,16 +74,18 @@ public class DefaultApiVersionStrategy implements ApiVersionStrategy {
|
||||
*/
|
||||
public DefaultApiVersionStrategy(
|
||||
List<ApiVersionResolver> versionResolvers, ApiVersionParser<?> versionParser,
|
||||
boolean versionRequired, @Nullable String defaultVersion,
|
||||
@Nullable Boolean versionRequired, @Nullable String defaultVersion,
|
||||
boolean detectSupportedVersions, @Nullable Predicate<Comparable<?>> supportedVersionPredicate,
|
||||
@Nullable ApiVersionDeprecationHandler deprecationHandler) {
|
||||
|
||||
Assert.notEmpty(versionResolvers, "At least one ApiVersionResolver is required");
|
||||
Assert.notNull(versionParser, "ApiVersionParser is required");
|
||||
Assert.isTrue(defaultVersion == null || versionRequired == null || !versionRequired,
|
||||
"versionRequired cannot be set to true if a defaultVersion is also configured");
|
||||
|
||||
this.versionResolvers = new ArrayList<>(versionResolvers);
|
||||
this.versionParser = versionParser;
|
||||
this.versionRequired = (versionRequired && defaultVersion == null);
|
||||
this.versionRequired = (versionRequired != null ? versionRequired : defaultVersion == null);
|
||||
this.defaultVersion = (defaultVersion != null ? versionParser.parseVersion(defaultVersion) : null);
|
||||
this.detectSupportedVersions = detectSupportedVersions;
|
||||
this.supportedVersionPredicate = initSupportedVersionPredicate(supportedVersionPredicate);
|
||||
|
||||
Reference in New Issue
Block a user