96 lines
4.9 KiB
Plaintext
96 lines
4.9 KiB
Plaintext
|
package {{package}}
|
||
|
|
||
|
{{#imports}}import {{import}}
|
||
|
{{/imports}}
|
||
|
{{#swagger2AnnotationLibrary}}
|
||
|
import io.swagger.v3.oas.annotations.*
|
||
|
import io.swagger.v3.oas.annotations.enums.*
|
||
|
import io.swagger.v3.oas.annotations.media.*
|
||
|
import io.swagger.v3.oas.annotations.responses.*
|
||
|
import io.swagger.v3.oas.annotations.security.*
|
||
|
{{/swagger2AnnotationLibrary}}
|
||
|
{{#swagger1AnnotationLibrary}}
|
||
|
import io.swagger.annotations.Api
|
||
|
import io.swagger.annotations.ApiOperation
|
||
|
import io.swagger.annotations.ApiParam
|
||
|
import io.swagger.annotations.ApiResponse
|
||
|
import io.swagger.annotations.ApiResponses
|
||
|
import io.swagger.annotations.Authorization
|
||
|
import io.swagger.annotations.AuthorizationScope
|
||
|
{{/swagger1AnnotationLibrary}}
|
||
|
import org.springframework.http.HttpStatus
|
||
|
import org.springframework.http.MediaType
|
||
|
import org.springframework.http.ResponseEntity
|
||
|
|
||
|
import org.springframework.web.bind.annotation.*
|
||
|
{{#useBeanValidation}}
|
||
|
import org.springframework.validation.annotation.Validated
|
||
|
{{/useBeanValidation}}
|
||
|
import org.springframework.web.context.request.NativeWebRequest
|
||
|
import org.springframework.beans.factory.annotation.Autowired
|
||
|
|
||
|
{{#useBeanValidation}}
|
||
|
import {{javaxPackage}}.validation.Valid
|
||
|
import {{javaxPackage}}.validation.constraints.DecimalMax
|
||
|
import {{javaxPackage}}.validation.constraints.DecimalMin
|
||
|
import {{javaxPackage}}.validation.constraints.Email
|
||
|
import {{javaxPackage}}.validation.constraints.Max
|
||
|
import {{javaxPackage}}.validation.constraints.Min
|
||
|
import {{javaxPackage}}.validation.constraints.NotNull
|
||
|
import {{javaxPackage}}.validation.constraints.Pattern
|
||
|
import {{javaxPackage}}.validation.constraints.Size
|
||
|
{{/useBeanValidation}}
|
||
|
|
||
|
{{#reactive}}
|
||
|
import kotlinx.coroutines.flow.Flow
|
||
|
{{/reactive}}
|
||
|
import kotlin.collections.List
|
||
|
import kotlin.collections.Map
|
||
|
|
||
|
@RestController{{#beanQualifiers}}("{{package}}.{{classname}}Controller"){{/beanQualifiers}}
|
||
|
{{#useBeanValidation}}
|
||
|
@Validated
|
||
|
{{/useBeanValidation}}
|
||
|
{{#swagger1AnnotationLibrary}}
|
||
|
@Api(value = "{{{baseName}}}", description = "The {{{baseName}}} API")
|
||
|
{{/swagger1AnnotationLibrary}}
|
||
|
{{=<% %>=}}
|
||
|
@RequestMapping("\${api.base-path:<%contextPath%>}")
|
||
|
<%={{ }}=%>
|
||
|
{{#operations}}
|
||
|
class {{classname}}Controller({{#serviceInterface}}@Autowired(required = true) val service: {{classname}}Service{{/serviceInterface}}) {
|
||
|
{{#operation}}
|
||
|
|
||
|
{{#swagger2AnnotationLibrary}}
|
||
|
@Operation(
|
||
|
summary = "{{{summary}}}",
|
||
|
operationId = "{{{operationId}}}",
|
||
|
description = """{{{unescapedNotes}}}""",
|
||
|
responses = [{{#responses}}
|
||
|
ApiResponse(responseCode = "{{{code}}}", description = "{{{message}}}"{{#baseType}}, content = [Content({{#isArray}}array = ArraySchema({{/isArray}}schema = Schema(implementation = {{{baseType}}}::class)){{#isArray}}){{/isArray}}]{{/baseType}}){{^-last}},{{/-last}}{{/responses}} ]{{#hasAuthMethods}},
|
||
|
security = [ {{#authMethods}}SecurityRequirement(name = "{{name}}"{{#isOAuth}}, scopes = [ {{#scopes}}"{{scope}}"{{^-last}}, {{/-last}}{{/scopes}} ]{{/isOAuth}}){{^-last}},{{/-last}}{{/authMethods}} ]{{/hasAuthMethods}}
|
||
|
){{/swagger2AnnotationLibrary}}{{#swagger1AnnotationLibrary}}
|
||
|
@ApiOperation(
|
||
|
value = "{{{summary}}}",
|
||
|
nickname = "{{{operationId}}}",
|
||
|
notes = "{{{notes}}}"{{#returnBaseType}},
|
||
|
response = {{{.}}}::class{{/returnBaseType}}{{#returnContainer}},
|
||
|
responseContainer = "{{{.}}}"{{/returnContainer}}{{#hasAuthMethods}},
|
||
|
authorizations = [{{#authMethods}}Authorization(value = "{{name}}"{{#isOAuth}}, scopes = [{{#scopes}}AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{^-last}}, {{/-last}}{{/scopes}}]{{/isOAuth}}){{^-last}}, {{/-last}}{{/authMethods}}]{{/hasAuthMethods}})
|
||
|
@ApiResponses(
|
||
|
value = [{{#responses}}ApiResponse(code = {{{code}}}, message = "{{{message}}}"{{#baseType}}, response = {{{.}}}::class{{/baseType}}{{#containerType}}, responseContainer = "{{{.}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}}]){{/swagger1AnnotationLibrary}}
|
||
|
@RequestMapping(
|
||
|
method = [RequestMethod.{{httpMethod}}],
|
||
|
value = ["{{#lambda.escapeDoubleQuote}}{{path}}{{/lambda.escapeDoubleQuote}}"]{{#singleContentTypes}}{{#hasProduces}},
|
||
|
produces = "{{{vendorExtensions.x-accepts}}}"{{/hasProduces}}{{#hasConsumes}},
|
||
|
consumes = "{{{vendorExtensions.x-content-type}}}"{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}},
|
||
|
produces = [{{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}]{{/hasProduces}}{{#hasConsumes}},
|
||
|
consumes = [{{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}}]{{/hasConsumes}}{{/singleContentTypes}}
|
||
|
)
|
||
|
{{#reactive}}{{^isArray}}suspend {{/isArray}}{{/reactive}}fun {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}): ResponseEntity<{{>returnTypes}}> {
|
||
|
return {{>returnValue}}
|
||
|
}
|
||
|
{{/operation}}
|
||
|
}
|
||
|
{{/operations}}
|