Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ import kotlin.collections.Map
{{/swagger1AnnotationLibrary}}
{{#useRequestMappingOnController}}
{{=<% %>=}}
@RequestMapping("\${api.<%title%>.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.<%title%>.base-path:\${api.base-path:$BASE_PATH}}")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I incorrectly implemented the double fallback as
${primary.key:secondary.key:/structure}
whereas it must be defined as nested placeholder:
${primary.key:${secondary.key:/structure}}

<%={{ }}=%>
{{/useRequestMappingOnController}}
{{#operations}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@ package {{package}}
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import java.util.Optional
{{#useRequestMappingOnController}}
import {{#apiPackage}}{{.}}.{{/apiPackage}}{{classname}}Controller.Companion.BASE_PATH
{{/useRequestMappingOnController}}

{{>generatedAnnotation}}

@Controller{{#beanQualifiers}}("{{package}}.{{classname}}Controller"){{/beanQualifiers}}
{{#useRequestMappingOnController}}
{{=<% %>=}}
@RequestMapping("\${openapi.<%title%>.base-path:<%>defaultBasePath%>}")
@RequestMapping("\${openapi.<%title%>.base-path:\${api.base-path:$BASE_PATH}}")
<%={{ }}=%>
{{/useRequestMappingOnController}}
{{#operations}}
Expand All @@ -30,5 +33,13 @@ class {{classname}}Controller(
{{/skipDefaultDelegateInterface}}

override fun getDelegate(): {{classname}}Delegate = delegate
{{#useRequestMappingOnController}}

companion object {
//for your own safety never directly reuse these path definitions in tests
const val BASE_PATH: String = "{{=<% %>=}}<%>defaultBasePath%><%={{ }}=%>"
}

{{/useRequestMappingOnController}}
}
{{/operations}}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ import kotlin.collections.Map
{{/swagger1AnnotationLibrary}}
{{#useRequestMappingOnInterface}}
{{=<% %>=}}
@RequestMapping("\${api.<%title%>.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.<%title%>.base-path:\${api.base-path:$BASE_PATH}}")
<%={{ }}=%>
{{/useRequestMappingOnInterface}}
{{#operations}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ import reactor.core.publisher.Mono
import kotlin.collections.List
import kotlin.collections.Map

{{#useRequestMappingOnInterface}}@HttpExchange(
"{{=<% %>=}}\${api.<%title%>.base-path:api.base-path:$BASE_PATH}<%={{ }}=%>"
){{/useRequestMappingOnInterface}}
{{#useRequestMappingOnInterface}}
{{=<% %>=}}
@HttpExchange("\${openapi.<%title%>.base-path:\${api.base-path:$BASE_PATH}}")
<%={{ }}=%>
{{/useRequestMappingOnInterface}}
{{#useBeanValidation}}
@Validated
{{/useBeanValidation}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class SpringFoxConfiguration {

@Bean
{{=<% %>=}}
fun customImplementation(servletContext: ServletContext, @Value("\${openapi.<%title%>.base-path:<%>defaultBasePath%>}") basePath: String): Docket {
fun customImplementation(servletContext: ServletContext, @Value("\${openapi.<%title%>.base-path:\${api.base-path:<%>defaultBasePath%>}}") basePath: String): Docket {
<%={{ }}=%>
return Docket(DocumentationType.SWAGGER_2)
.select()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,11 @@ public void testNoRequestMappingAnnotationController() throws IOException {
// Check that the @RequestMapping annotation is generated in the ApiController file
assertFileContains(
Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApiController.kt"),
"@RequestMapping(\"\\${"
"@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")",
" companion object {\n"
+ " //for your own safety never directly reuse these path definitions in tests\n"
+ " const val BASE_PATH: String = \"/v2\"\n"
+ " }"
);
}

Expand All @@ -154,7 +158,10 @@ public void testNoRequestMappingAnnotationApiInterface() throws IOException {
// Check that the @RequestMapping annotation is generated in the Api file
assertFileContains(
Paths.get(output + "/src/main/kotlin/org/openapitools/api/PetApi.kt"),
"@RequestMapping(\"\\${"
"@RequestMapping(\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\")",
" companion object {\n"
+ " //for your own safety never directly reuse these path definitions in tests\n"
+ " const val BASE_PATH: String = \"/v2\""
);
// Check that the @RequestMapping annotation is not generated in the ApiController file
assertFileNotContains(
Expand Down Expand Up @@ -1286,7 +1293,7 @@ public void generateHttpInterface() throws Exception {
codegen.additionalProperties().put(CodegenConstants.LIBRARY, "spring-declarative-http-interface");
codegen.additionalProperties().put(REACTIVE, false);
codegen.additionalProperties().put(USE_RESPONSE_ENTITY, false);
codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "none");
codegen.additionalProperties().put(REQUEST_MAPPING_OPTION, "api_interface");
codegen.additionalProperties().put(USE_FLOW_FOR_ARRAY_RETURN_TYPE, false);

ClientOptInput input = new ClientOptInput()
Expand All @@ -1305,6 +1312,9 @@ public void generateHttpInterface() throws Exception {
Path path = Paths.get(outputPath + "/src/main/kotlin/org/openapitools/api/StoreApiClient.kt");
assertFileContains(
path,
"@HttpExchange(\n"
+ "\"\\${openapi.openAPIPetstore.base-path:\\${api.base-path:$BASE_PATH}}\"\n"
+ ")",
" fun getInventory(\n"
+ " ): Map<String, kotlin.Int>",
" fun deleteOrder(\n"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface PetApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface StoreApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface UserApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import reactor.core.publisher.Mono
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface PetApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import reactor.core.publisher.Mono
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface StoreApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import reactor.core.publisher.Mono
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface UserApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface PetApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface StoreApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface UserApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface PetApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface StoreApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import jakarta.validation.constraints.*
import kotlin.collections.List
import kotlin.collections.Map


@Validated
interface UserApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class FakeApiController() {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class PetApiController() {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class StoreApiController() {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class UserApiController() {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.demo.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.demo.base-path:\${api.base-path:$BASE_PATH}}")
class TestApiController() {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
interface PetApi {

fun getDelegate(): PetApiDelegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
interface StoreApi {

fun getDelegate(): StoreApiDelegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
interface UserApi {

fun getDelegate(): UserApiDelegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@ package org.openapitools.api
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import java.util.Optional
import org.openapitools.api.PetApiController.Companion.BASE_PATH

@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT")
@Controller
@RequestMapping("\${openapi.openAPIPetstore.base-path:/v2}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class PetApiController(
private val delegate: PetApiDelegate
) : PetApi {

override fun getDelegate(): PetApiDelegate = delegate

companion object {
//for your own safety never directly reuse these path definitions in tests
const val BASE_PATH: String = "/v2"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@ package org.openapitools.api
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import java.util.Optional
import org.openapitools.api.StoreApiController.Companion.BASE_PATH

@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT")
@Controller
@RequestMapping("\${openapi.openAPIPetstore.base-path:/v2}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class StoreApiController(
private val delegate: StoreApiDelegate
) : StoreApi {

override fun getDelegate(): StoreApiDelegate = delegate

companion object {
//for your own safety never directly reuse these path definitions in tests
const val BASE_PATH: String = "/v2"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,20 @@ package org.openapitools.api
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import java.util.Optional
import org.openapitools.api.UserApiController.Companion.BASE_PATH

@javax.annotation.Generated(value = ["org.openapitools.codegen.languages.KotlinSpringServerCodegen"], comments = "Generator version: 7.18.0-SNAPSHOT")
@Controller
@RequestMapping("\${openapi.openAPIPetstore.base-path:/v2}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class UserApiController(
private val delegate: UserApiDelegate
) : UserApi {

override fun getDelegate(): UserApiDelegate = delegate

companion object {
//for your own safety never directly reuse these path definitions in tests
const val BASE_PATH: String = "/v2"
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class PetApiController(@Autowired(required = true) val service: PetApiService) {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class StoreApiController(@Autowired(required = true) val service: StoreApiService) {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.openAPIPetstore.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.openAPIPetstore.base-path:\${api.base-path:$BASE_PATH}}")
class UserApiController(@Autowired(required = true) val service: UserApiService) {

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import kotlin.collections.Map

@RestController
@Validated
@RequestMapping("\${api.multipartFileTest.base-path:api.base-path:$BASE_PATH}")
@RequestMapping("\${openapi.multipartFileTest.base-path:\${api.base-path:$BASE_PATH}}")
class MultipartMixedApiController() {

@Operation(
Expand Down
Loading
Loading