Skip to content

Commit

Permalink
Improve support for externalizing strings in generated openapi. Fixes #…
Browse files Browse the repository at this point in the history
  • Loading branch information
bnasslahsen committed Apr 1, 2024
1 parent 460d543 commit 1ca8bc5
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 1 deletion.
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.5.0] - 2024-04-01

### Added

- #2318 - Add Info to GroupedOpenAPI properties
- #2554 - Remove duplicate words from comments
- #2418 - Improve support for externalizing strings in generated openapi
- #2535 - Add 'springdoc.trim-kotlin-indent' property to handle Kotlin multiline string indentation
### Changed

- Upgrade spring-boot to 3.2.4
- Upgrade swagger-core to 2.2.21
- Upgrade swagger-ui to 5.13.0

### Fixed
- #2525 - Inherited Methods Not Included in Swagger Documentation with @RouterOperation in Spring Boot WebFlux Application
- #2526 - SpringDoc bean naming conflict error with GraphQL Spring boot starter
- #2540 - Fix typo in SpringRepositoryRestResourceProvider.java
- #2549 - Fix README.md

## [2.4.0] - 2024-03-12

### Added
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.springdoc.core.conditions;

/**
* @author bnasslahsen
*/

import java.util.Set;

import org.springdoc.core.properties.SpringDocConfigProperties;
import org.springdoc.core.properties.SpringDocConfigProperties.GroupConfig;

import org.springframework.boot.context.properties.bind.BindResult;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

import static org.springdoc.core.utils.Constants.SPRINGDOC_PREFIX;

/**
* The type Spec properties condition.
*
* @author bnasslahsen
*/
public class SpecPropertiesCondition implements Condition {

@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
final BindResult<SpringDocConfigProperties> result = Binder.get(context.getEnvironment())
.bind(SPRINGDOC_PREFIX, SpringDocConfigProperties.class);
if (result.isBound()) {
SpringDocConfigProperties springDocConfigProperties = result.get();
if (springDocConfigProperties.getOpenApi() != null)
return true;
Set<GroupConfig> groupConfigs = springDocConfigProperties.getGroupConfigs();
return groupConfigs.stream().anyMatch(config -> config.getOpenApi() != null);
}
return false;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import java.util.List;
import java.util.Set;

import org.springdoc.core.conditions.SpecPropertiesCondition;
import org.springdoc.core.customizers.SpecPropertiesCustomizer;
import org.springdoc.core.models.GroupedOpenApi;
import org.springdoc.core.properties.SpringDocConfigProperties;
Expand All @@ -36,6 +37,7 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;

Expand All @@ -48,6 +50,7 @@
@Lazy(false)
@Configuration(proxyBeanMethods = false)
@ConditionalOnBean(SpringDocConfiguration.class)
@Conditional(SpecPropertiesCondition.class)
public class SpringDocSpecPropertiesConfiguration {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ springdoc:
example: Example value for 'name' property in ApiGroupName

paths:
/persons:
/persons2:
get:
summary: Summary of operationId 'persons' in ApiGroupName
description: Description of operationId 'persons' in ApiGroupName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@
"tags": [
"hello-controller"
],
"summary": "Summary of operationId 'persons' in ApiGroupName",
"description": "Description of operationId 'persons' in ApiGroupName",
"operationId": "persons2",
"responses": {
"200": {
Expand Down

0 comments on commit 1ca8bc5

Please sign in to comment.