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<{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}> 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}}