mirror of
https://github.com/datahub-project/datahub.git
synced 2025-12-16 12:38:13 +00:00
Co-authored-by: Pedro Silva <pedro@acryl.io> Co-authored-by: Shirshanka Das <shirshanka@apache.org> Co-authored-by: Ryan Holstien <ryan@acryl.io>
174 lines
8.8 KiB
Plaintext
174 lines
8.8 KiB
Plaintext
/**
|
|
* NOTE: This class is auto generated by the swagger code generator program ({{{generatorVersion}}}).
|
|
* https://github.com/swagger-api/swagger-codegen
|
|
* Do not edit the class manually.
|
|
*/
|
|
package {{package}};
|
|
|
|
{{#imports}}import {{import}};
|
|
{{/imports}}
|
|
{{#jdk8-no-delegate}}
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
{{/jdk8-no-delegate}}
|
|
{{#useOas2}}
|
|
import io.swagger.annotations.*;
|
|
{{/useOas2}}
|
|
{{^useOas2}}
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
|
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
|
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
|
import io.swagger.v3.oas.annotations.media.ArraySchema;
|
|
import io.swagger.v3.oas.annotations.media.Content;
|
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
|
{{/useOas2}}
|
|
{{#jdk8-no-delegate}}
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.http.HttpStatus;
|
|
{{/jdk8-no-delegate}}
|
|
import org.springframework.http.ResponseEntity;
|
|
{{#useBeanValidation}}
|
|
import org.springframework.validation.annotation.Validated;
|
|
{{/useBeanValidation}}
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestHeader;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestPart;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.bind.annotation.CookieValue;
|
|
|
|
{{#jdk8-no-delegate}}
|
|
import javax.servlet.http.HttpServletRequest;
|
|
{{/jdk8-no-delegate}}
|
|
{{#useBeanValidation}}
|
|
import javax.validation.Valid;
|
|
import javax.validation.constraints.*;
|
|
{{/useBeanValidation}}
|
|
{{#jdk8-no-delegate}}
|
|
import java.io.IOException;
|
|
{{/jdk8-no-delegate}}
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
{{#jdk8-no-delegate}}
|
|
import java.util.Optional;
|
|
{{/jdk8-no-delegate}}
|
|
{{^jdk8-no-delegate}}
|
|
{{#useOptional}}
|
|
import java.util.Optional;
|
|
{{/useOptional}}
|
|
{{/jdk8-no-delegate}}
|
|
{{#async}}
|
|
import java.util.concurrent.{{^isJava8or11}}Callable{{/isJava8or11}}{{#isJava8or11}}CompletableFuture{{/isJava8or11}};
|
|
{{/async}}
|
|
|
|
{{>generatedAnnotation}}
|
|
{{#useBeanValidation}}
|
|
@Validated
|
|
{{/useBeanValidation}}
|
|
{{#useOas2}}
|
|
@Api(value = "{{{baseName}}}", description = "the {{{baseName}}} API")
|
|
{{/useOas2}}
|
|
{{#operations}}
|
|
public interface {{classname}} {
|
|
{{#isJava8or11}}
|
|
|
|
{{^isDelegate}}
|
|
Logger log = LoggerFactory.getLogger({{classname}}.class);
|
|
|
|
{{#defaultInterfaces}}default {{/defaultInterfaces}}Optional<ObjectMapper> getObjectMapper(){{^defaultInterfaces}};{{/defaultInterfaces}}{{#defaultInterfaces}}{
|
|
return Optional.empty();
|
|
}{{/defaultInterfaces}}
|
|
|
|
{{#defaultInterfaces}}default {{/defaultInterfaces}}Optional<HttpServletRequest> getRequest(){{^defaultInterfaces}};{{/defaultInterfaces}}{{#defaultInterfaces}}{
|
|
return Optional.empty();
|
|
}{{/defaultInterfaces}}
|
|
|
|
{{#defaultInterfaces}}default Optional<String> getAcceptHeader() {
|
|
return getRequest().map(r -> r.getHeader("Accept"));
|
|
}{{/defaultInterfaces}}
|
|
{{/isDelegate}}
|
|
{{#isDelegate}}
|
|
{{classname}}Delegate getDelegate();
|
|
{{/isDelegate}}
|
|
{{/isJava8or11}}
|
|
{{#operation}}
|
|
{{#contents}}
|
|
{{#@first}}
|
|
|
|
{{#useOas2}}
|
|
@ApiOperation(value = "{{{summary}}}", nickname = "{{{operationId}}}", notes = "{{{notes}}}"{{#returnBaseType}}, response = {{{returnBaseType}}}.class{{/returnBaseType}}{{#returnContainer}}, responseContainer = "{{{returnContainer}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = {
|
|
{{#authMethods}}@Authorization(value = "{{name}}"{{#isOAuth}}, scopes = { {{#each scopes}}
|
|
@AuthorizationScope(scope = "{{@key}}", description = "{{this}}"){{^@last}},{{/@last}}{{/each}}
|
|
}{{/isOAuth}}){{#hasMore}},
|
|
{{/hasMore}}{{/authMethods}}
|
|
}{{/hasAuthMethods}}, tags={ {{#vendorExtensions.x-tags}}"{{tag}}",{{/vendorExtensions.x-tags}} })
|
|
@ApiResponses(value = { {{#responses}}
|
|
@ApiResponse(code = {{{code}}}, message = "{{{message}}}"{{#baseType}}, response = {{{baseType}}}.class{{/baseType}}{{#containerType}}, responseContainer = "{{{containerType}}}"{{/containerType}}){{#hasMore}},{{/hasMore}}{{/responses}} })
|
|
{{#implicitHeaders}}
|
|
@ApiImplicitParams({
|
|
{{#headerParams}}
|
|
{{>implicitHeader}}
|
|
{{/headerParams}}
|
|
})
|
|
{{/implicitHeaders}}
|
|
{{/useOas2}}
|
|
{{^useOas2}}
|
|
@Operation(summary = "{{{summary}}}", description = "{{{notes}}}"{{#hasAuthMethods}}, security = {
|
|
{{#authMethods}}@SecurityRequirement(name = "{{name}}"{{#isOAuth}}, scopes = {
|
|
{{#each scopes}}"{{@key}}"{{^@last}},
|
|
{{/@last}}{{/each}}
|
|
}{{/isOAuth}}){{#hasMore}},
|
|
{{/hasMore}}{{/authMethods}}
|
|
}{{/hasAuthMethods}}, tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} })
|
|
@ApiResponses(value = { {{#responses}}
|
|
@ApiResponse(responseCode = "{{{code}}}", description = "{{{message}}}"{{^vendorExtensions.x-java-is-response-void}}{{#baseType}}, content = @Content({{#schema.extensions.x-content-type}}mediaType = "{{schema.extensions.x-content-type}}", {{/schema.extensions.x-content-type}}{{^containerType}}schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = {{{baseType}}}.class)){{/containerType}}{{#containerType}}array = @ArraySchema(schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = {{{baseType}}}.class))){{/containerType}}{{/baseType}}{{/vendorExtensions.x-java-is-response-void}}){{#hasMore}},
|
|
{{/hasMore}}{{/responses}} })
|
|
{{/useOas2}}
|
|
@RequestMapping(value = "{{{path}}}",{{#singleContentTypes}}{{#hasProduces}}
|
|
produces = "{{{vendorExtensions.x-accepts}}}", {{/hasProduces}}{{#hasConsumes}}
|
|
consumes = "{{{vendorExtensions.x-contentType}}}",{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}}
|
|
produces = { {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}{{#hasConsumes}}
|
|
consumes = { {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }, {{/hasConsumes}}{{/singleContentTypes}}
|
|
method = RequestMethod.{{httpMethod}})
|
|
{{#defaultInterfaces}}default {{/defaultInterfaces}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#parameters}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>cookieParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/parameters}}){{^defaultInterfaces}}{{#throwsException}} throws Exception{{/throwsException}};{{/defaultInterfaces}}{{#defaultInterfaces}}{{#throwsException}} throws Exception{{/throwsException}} {
|
|
{{#delegate-method}}
|
|
return {{operationId}}({{#parameters}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/parameters}});
|
|
}
|
|
|
|
// Override this method
|
|
default {{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#parameters}}{{^isBinary}}{{{dataType}}}{{/isBinary}}{{#isBinary}}MultipartFile{{/isBinary}} {{paramName}}{{#hasMore}},{{/hasMore}}{{/parameters}}) {
|
|
{{/delegate-method}}
|
|
{{^isDelegate}}
|
|
if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) {
|
|
{{#examples}}
|
|
if (getAcceptHeader().get().contains("{{{contentType}}}")) {
|
|
try {
|
|
return {{#async}}CompletableFuture.completedFuture({{/async}}new ResponseEntity<>(getObjectMapper().get().readValue("{{#lambdaRemoveLineBreak}}{{#lambdaEscapeDoubleQuote}}{{{example}}}{{/lambdaEscapeDoubleQuote}}{{/lambdaRemoveLineBreak}}", {{>exampleReturnTypes}}.class), HttpStatus.NOT_IMPLEMENTED){{#async}}){{/async}};
|
|
} catch (IOException e) {
|
|
log.error("Couldn't serialize response for content type {{{contentType}}}", e);
|
|
return {{#async}}CompletableFuture.completedFuture({{/async}}new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR){{#async}}){{/async}};
|
|
}
|
|
}
|
|
{{/examples}}
|
|
} else {
|
|
log.warn("ObjectMapper or HttpServletRequest not configured in default {{classname}} interface so no example is generated");
|
|
}
|
|
return {{#async}}CompletableFuture.completedFuture({{/async}}new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED){{#async}}){{/async}};
|
|
{{/isDelegate}}
|
|
{{#isDelegate}}
|
|
return getDelegate().{{operationId}}({{#parameters}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/parameters}});
|
|
{{/isDelegate}}
|
|
}{{/defaultInterfaces}}
|
|
|
|
{{/@first}}
|
|
{{/contents}}
|
|
{{/operation}}
|
|
}
|
|
{{/operations}}
|
|
|