github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/webclient/api.mustache (about) 1 package {{package}}; 2 3 import {{invokerPackage}}.ApiClient; 4 5 {{#imports}}import {{import}}; 6 {{/imports}} 7 {{^fullJavaUtil}} 8 9 import java.util.HashMap; 10 import java.util.List; 11 import java.util.Locale; 12 import java.util.Map; 13 {{/fullJavaUtil}} 14 15 import org.springframework.beans.factory.annotation.Autowired; 16 import org.springframework.util.LinkedMultiValueMap; 17 import org.springframework.util.MultiValueMap; 18 import org.springframework.web.client.RestClientException; 19 import org.springframework.web.client.HttpClientErrorException; 20 import org.springframework.web.util.UriComponentsBuilder; 21 import org.springframework.core.ParameterizedTypeReference; 22 import org.springframework.core.io.FileSystemResource; 23 import org.springframework.http.HttpHeaders; 24 import org.springframework.http.HttpMethod; 25 import org.springframework.http.HttpStatus; 26 import org.springframework.http.MediaType; 27 import reactor.core.publisher.Mono; 28 import reactor.core.publisher.Flux; 29 30 {{>generatedAnnotation}} 31 {{#operations}} 32 public class {{classname}} { 33 private ApiClient apiClient; 34 35 public {{classname}}() { 36 this(new ApiClient()); 37 } 38 39 @Autowired 40 public {{classname}}(ApiClient apiClient) { 41 this.apiClient = apiClient; 42 } 43 44 public ApiClient getApiClient() { 45 return apiClient; 46 } 47 48 public void setApiClient(ApiClient apiClient) { 49 this.apiClient = apiClient; 50 } 51 52 {{#operation}} 53 /** 54 * {{summary}} 55 * {{notes}} 56 {{#responses}} * <p><b>{{code}}</b>{{#message}} - {{message}}{{/message}} 57 {{/responses}}{{#allParams}} * @param {{paramName}} {{description}}{{^description}}The {{paramName}} parameter{{/description}} 58 {{/allParams}}{{#returnType}} * @return {{returnType}} 59 {{/returnType}} * @throws RestClientException if an error occurs while attempting to invoke the API 60 {{#externalDocs}} 61 * {{description}} 62 * @see <a href="{{url}}">{{summary}} Documentation</a> 63 {{/externalDocs}} 64 */ 65 public {{#returnType}}{{#isArray}}Flux<{{{returnBaseType}}}>{{/isArray}}{{^isArray}}Mono<{{{returnType}}}>{{/isArray}} {{/returnType}}{{^returnType}}Mono<Void> {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws RestClientException { 66 Object postBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}; 67 {{#allParams}} 68 {{#required}} 69 // verify the required parameter '{{paramName}}' is set 70 if ({{paramName}} == null) { 71 throw new HttpClientErrorException(HttpStatus.BAD_REQUEST, "Missing the required parameter '{{paramName}}' when calling {{operationId}}"); 72 } 73 {{/required}} 74 {{/allParams}} 75 // create path and map variables 76 final Map<String, Object> pathParams = new HashMap<String, Object>(); 77 {{#hasPathParams}} 78 79 {{#pathParams}} 80 pathParams.put("{{baseName}}", {{#collectionFormat}}apiClient.collectionPathParameterToString(ApiClient.CollectionFormat.valueOf("csv".toUpperCase()), {{/collectionFormat}}{{{paramName}}}{{#collectionFormat}}){{/collectionFormat}}); 81 {{/pathParams}} 82 {{/hasPathParams}} 83 84 final MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<String, String>(); 85 final HttpHeaders headerParams = new HttpHeaders(); 86 final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>(); 87 final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>(); 88 {{#hasQueryParams}} 89 90 {{#queryParams}} 91 queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); 92 {{/queryParams}} 93 {{/hasQueryParams}} 94 {{#hasHeaderParams}} 95 96 {{#headerParams}} 97 if ({{paramName}} != null) 98 headerParams.add("{{baseName}}", apiClient.parameterToString({{paramName}}));{{^-last}} 99 {{/-last}} 100 {{/headerParams}} 101 {{/hasHeaderParams}} 102 {{#hasCookieParams}} 103 104 {{#cookieParams}} 105 cookieParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{collectionFormat}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); 106 {{/cookieParams}} 107 {{/hasCookieParams}} 108 {{#hasFormParams}} 109 110 {{#formParams}} 111 if ({{paramName}} != null) 112 formParams.add{{#collectionFormat}}All{{/collectionFormat}}("{{baseName}}", {{#isFile}}new FileSystemResource({{paramName}}){{/isFile}}{{^isFile}}{{paramName}}{{/isFile}}); 113 {{/formParams}} 114 {{/hasFormParams}} 115 116 final String[] localVarAccepts = { {{#hasProduces}} 117 {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} 118 {{/hasProduces}}}; 119 final List<MediaType> localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); 120 final String[] localVarContentTypes = { {{#hasConsumes}} 121 {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} 122 {{/hasConsumes}}}; 123 final MediaType localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); 124 125 String[] localVarAuthNames = new String[] { {{#authMethods}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}} }; 126 127 {{#returnType}}ParameterizedTypeReference<{{#isArray}}{{{returnBaseType}}}{{/isArray}}{{^isArray}}{{{returnType}}}{{/isArray}}> localVarReturnType = new ParameterizedTypeReference<{{#isArray}}{{{returnBaseType}}}{{/isArray}}{{^isArray}}{{{returnType}}}{{/isArray}}>() {};{{/returnType}}{{^returnType}}ParameterizedTypeReference<Void> localVarReturnType = new ParameterizedTypeReference<Void>() {};{{/returnType}} 128 return apiClient.{{#isArray}}invokeFluxAPI{{/isArray}}{{^isArray}}invokeAPI{{/isArray}}("{{{path}}}", HttpMethod.{{httpMethod}}, pathParams, queryParams, postBody, headerParams, cookieParams, formParams, localVarAccept, localVarContentType, localVarAuthNames, localVarReturnType); 129 } 130 {{/operation}} 131 } 132 {{/operations}}