github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/resttemplate/api.mustache (about)

     1  package {{package}};
     2  
     3  import {{invokerPackage}}.ApiClient;
     4  
     5  {{#imports}}import {{import}};
     6  {{/imports}}
     7  
     8  {{^fullJavaUtil}}import java.util.ArrayList;
     9  import java.util.Collections;
    10  import java.util.HashMap;
    11  import java.util.List;
    12  import java.util.Locale;
    13  import java.util.Map;{{/fullJavaUtil}}
    14  
    15  import org.springframework.beans.factory.annotation.Autowired;
    16  import org.springframework.stereotype.Component;
    17  import org.springframework.util.LinkedMultiValueMap;
    18  import org.springframework.util.MultiValueMap;
    19  import org.springframework.web.client.RestClientException;
    20  import org.springframework.web.client.HttpClientErrorException;
    21  import org.springframework.web.util.UriComponentsBuilder;
    22  import org.springframework.core.ParameterizedTypeReference;
    23  import org.springframework.core.io.FileSystemResource;
    24  import org.springframework.http.HttpHeaders;
    25  import org.springframework.http.HttpMethod;
    26  import org.springframework.http.HttpStatus;
    27  import org.springframework.http.MediaType;
    28  import org.springframework.http.ResponseEntity;
    29  
    30  {{>generatedAnnotation}}
    31  @Component("{{package}}.{{classname}}")
    32  {{#operations}}
    33  public class {{classname}} {
    34      private ApiClient apiClient;
    35  
    36      public {{classname}}() {
    37          this(new ApiClient());
    38      }
    39  
    40      @Autowired
    41      public {{classname}}(ApiClient apiClient) {
    42          this.apiClient = apiClient;
    43      }
    44  
    45      public ApiClient getApiClient() {
    46          return apiClient;
    47      }
    48  
    49      public void setApiClient(ApiClient apiClient) {
    50          this.apiClient = apiClient;
    51      }
    52  
    53      {{#operation}}
    54      /**
    55       * {{summary}}
    56       * {{notes}}
    57      {{#responses}}
    58       * <p><b>{{code}}</b>{{#message}} - {{message}}{{/message}}
    59       {{/responses}}
    60       {{#allParams}}
    61       * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
    62       {{/allParams}}
    63       {{#returnType}}
    64       * @return {{returnType}}
    65       {{/returnType}}
    66       * @throws RestClientException if an error occurs while attempting to invoke the API
    67       {{#externalDocs}}
    68       * {{description}}
    69       * @see <a href="{{url}}">{{summary}} Documentation</a>
    70       {{/externalDocs}}
    71       */
    72      {{#isDeprecated}}
    73      @Deprecated
    74      {{/isDeprecated}}
    75      public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws RestClientException {
    76          {{#returnType}}
    77          return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).getBody();
    78          {{/returnType}}
    79          {{^returnType}}
    80          {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});
    81          {{/returnType}}
    82      }
    83  
    84      /**
    85       * {{summary}}
    86       * {{notes}}
    87       {{#responses}}
    88       * <p><b>{{code}}</b>{{#message}} - {{message}}{{/message}}
    89       {{/responses}}
    90       {{#allParams}}
    91       * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
    92       {{/allParams}}
    93       * @return ResponseEntity&lt;{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}&gt;
    94       * @throws RestClientException if an error occurs while attempting to invoke the API
    95       {{#externalDocs}}
    96       * {{description}}
    97       * @see <a href="{{url}}">{{summary}} Documentation</a>
    98       {{/externalDocs}}
    99       */
   100      {{#isDeprecated}}
   101      @Deprecated
   102      {{/isDeprecated}}
   103      public ResponseEntity<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws RestClientException {
   104          Object postBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}};
   105          {{#allParams}}{{#required}}
   106          // verify the required parameter '{{paramName}}' is set
   107          if ({{paramName}} == null) {
   108              throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter '{{paramName}}' when calling {{operationId}}");
   109          }
   110          {{/required}}{{/allParams}}{{#hasPathParams}}
   111          // create path and map variables
   112          final Map<String, Object> uriVariables = new HashMap<String, Object>();{{#pathParams}}
   113          uriVariables.put("{{baseName}}", {{#collectionFormat}}apiClient.collectionPathParameterToString(ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase()), {{{paramName}}}){{/collectionFormat}}{{^collectionFormat}}{{{paramName}}}{{/collectionFormat}});{{/pathParams}}{{/hasPathParams}}
   114          String path = apiClient.expandPath("{{{path}}}", {{#hasPathParams}}uriVariables{{/hasPathParams}}{{^hasPathParams}}Collections.<String, Object>emptyMap(){{/hasPathParams}});
   115  
   116          final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>();
   117          final HttpHeaders headerParams = new HttpHeaders();
   118          final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
   119          final MultiValueMap formParams = new LinkedMultiValueMap();{{#hasQueryParams}}
   120  
   121          {{#queryParams}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));{{^-last}}
   122          {{/-last}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}}
   123  
   124          {{#headerParams}}if ({{paramName}} != null)
   125          headerParams.add("{{baseName}}", apiClient.parameterToString({{paramName}}));{{^-last}}
   126          {{/-last}}{{/headerParams}}{{/hasHeaderParams}}{{#hasCookieParams}}
   127  
   128          {{#cookieParams}}if ({{paramName}} != null)
   129          cookieParams.add("{{baseName}}", apiClient.parameterToString({{paramName}}));{{^-last}}
   130          {{/-last}}{{/cookieParams}}{{/hasCookieParams}}{{#hasFormParams}}
   131  
   132          {{#formParams}}if ({{paramName}} != null)
   133              formParams.{{^collectionFormat}}add{{/collectionFormat}}{{#collectionFormat}}put{{/collectionFormat}}("{{baseName}}", {{#isFile}}new FileSystemResource({{paramName}}){{/isFile}}{{^isFile}}{{paramName}}{{/isFile}});{{^-last}}
   134          {{/-last}}{{/formParams}}{{/hasFormParams}}
   135  
   136          final String[] accepts = { {{#hasProduces}}
   137              {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}}
   138          {{/hasProduces}}};
   139          final List<MediaType> accept = apiClient.selectHeaderAccept(accepts);
   140          final String[] contentTypes = { {{#hasConsumes}}
   141              {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}}
   142          {{/hasConsumes}}};
   143          final MediaType contentType = apiClient.selectHeaderContentType(contentTypes);
   144  
   145          String[] authNames = new String[] { {{#authMethods}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}} };
   146  
   147          {{#returnType}}ParameterizedTypeReference<{{{returnType}}}> returnType = new ParameterizedTypeReference<{{{returnType}}}>() {};{{/returnType}}{{^returnType}}ParameterizedTypeReference<Void> returnType = new ParameterizedTypeReference<Void>() {};{{/returnType}}
   148          return apiClient.invokeAPI(path, HttpMethod.{{httpMethod}}, queryParams, postBody, headerParams, cookieParams, formParams, accept, contentType, authNames, returnType);
   149      }
   150      {{/operation}}
   151  }
   152  {{/operations}}