All Downloads are FREE. Search and download functionalities are using the official Maven repository.

handlebars.Java.libraries.resttemplate.api.mustache Maven / Gradle / Ivy

There is a newer version: 1.0.54
Show newest version
package {{package}};

import {{invokerPackage}}.ApiClient;

{{#imports}}import {{import}};
{{/imports}}

{{^fullJavaUtil}}import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;{{/fullJavaUtil}}

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.util.UriComponentsBuilder;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;

{{>generatedAnnotation}}
@Component("{{package}}.{{classname}}")
{{#operations}}
public class {{classname}} {
    private ApiClient {{localVariablePrefix}}apiClient;

    public {{classname}}() {
        this(new ApiClient());
    }

    @Autowired
    public {{classname}}(ApiClient apiClient) {
        this.{{localVariablePrefix}}apiClient = apiClient;
    }

    public ApiClient getApiClient() {
        return {{localVariablePrefix}}apiClient;
    }

    public void setApiClient(ApiClient apiClient) {
        this.{{localVariablePrefix}}apiClient = apiClient;
    }

    {{#operation}}
    {{#contents}}
    /**
     * {{summary}}
     * {{notes}}
    {{#responses}}
     * 

{{code}}{{#message}} - {{message}}{{/message}} {{/responses}} {{#parameters}} * @param {{paramName}} {{description}}{{^description}}The {{paramName}} parameter{{/description}} {{/parameters}} {{#returnType}} * @return {{returnType}} {{/returnType}} * @throws RestClientException if an error occurs while attempting to invoke the API {{#externalDocs}} * {{description}} * @see {{summary}} Documentation {{/externalDocs}} */ public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#parameters}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/parameters}}) throws RestClientException { Object {{localVariablePrefix}}postBody = {{^isForm}}{{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}{{/isForm}}{{#isForm}}null{{/isForm}}; {{#parameters}} {{#required}} // verify the required parameter '{{paramName}}' is set if ({{paramName}} == null) { throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter '{{paramName}}' when calling {{operationId}}"); } {{/required}} {{/parameters}} {{#hasPathParams}} // create path and map variables final Map uriVariables = new HashMap(); {{#pathParams}} uriVariables.put("{{baseName}}", {{{paramName}}}); {{/pathParams}} {{/hasPathParams}} String {{localVariablePrefix}}path = UriComponentsBuilder.fromPath("{{{path}}}"){{#hasPathParams}}.buildAndExpand(uriVariables){{/hasPathParams}}{{^hasPathParams}}.build(){{/hasPathParams}}.toUriString(); final MultiValueMap {{localVariablePrefix}}queryParams = new LinkedMultiValueMap(); final HttpHeaders {{localVariablePrefix}}headerParams = new HttpHeaders(); final MultiValueMap {{localVariablePrefix}}formParams = new LinkedMultiValueMap(); {{#hasQueryParams}} {{#queryParams}} {{localVariablePrefix}}queryParams.putAll({{localVariablePrefix}}apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase()){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); {{/queryParams}} {{/hasQueryParams}} {{#hasHeaderParams}} {{#headerParams}} if ({{paramName}} != null) {{localVariablePrefix}}headerParams.add("{{baseName}}", {{localVariablePrefix}}apiClient.parameterToString({{paramName}})); {{/headerParams}} {{/hasHeaderParams}} {{#hasFormParams}} {{#isForm}} {{#formParams}} if ({{paramName}} != null) {{localVariablePrefix}}formParams.add("{{baseName}}", {{#is this 'binary'}}new FileSystemResource({{paramName}}){{/is}}{{#isNot this 'binary'}}{{paramName}}{{/isNot}}); {{/formParams}} {{/isForm}} {{/hasFormParams}} final String[] {{localVariablePrefix}}accepts = { {{#hasProduces}} {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} {{/hasProduces}} }; final List {{localVariablePrefix}}accept = {{localVariablePrefix}}apiClient.selectHeaderAccept({{localVariablePrefix}}accepts); final String[] {{localVariablePrefix}}contentTypes = { {{#hasConsumes}} {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} {{/hasConsumes}} }; final MediaType {{localVariablePrefix}}contentType = {{localVariablePrefix}}apiClient.selectHeaderContentType({{localVariablePrefix}}contentTypes); String[] {{localVariablePrefix}}authNames = new String[] { {{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}} }; {{#returnType}}ParameterizedTypeReference<{{{returnType}}}> {{localVariablePrefix}}returnType = new ParameterizedTypeReference<{{{returnType}}}>() {};{{/returnType}}{{^returnType}}ParameterizedTypeReference {{localVariablePrefix}}returnType = new ParameterizedTypeReference() {};{{/returnType}} {{#returnType}}return {{/returnType}}{{localVariablePrefix}}apiClient.invokeAPI({{localVariablePrefix}}path, HttpMethod.{{httpMethod}}, {{localVariablePrefix}}queryParams, {{localVariablePrefix}}postBody, {{localVariablePrefix}}headerParams, {{localVariablePrefix}}formParams, {{localVariablePrefix}}accept, {{localVariablePrefix}}contentType, {{localVariablePrefix}}authNames, {{localVariablePrefix}}returnType); } {{/contents}} {{/operation}} } {{/operations}}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy