github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/feign/api.mustache (about) 1 package {{package}}; 2 3 import {{invokerPackage}}.ApiClient; 4 import {{invokerPackage}}.EncodingUtils; 5 {{#legacyDates}} 6 import {{invokerPackage}}.ParamExpander; 7 {{/legacyDates}} 8 9 {{#imports}}import {{import}}; 10 {{/imports}} 11 12 {{^fullJavaUtil}} 13 import java.util.ArrayList; 14 import java.util.HashMap; 15 import java.util.List; 16 import java.util.Map; 17 {{/fullJavaUtil}} 18 import feign.*; 19 20 {{>generatedAnnotation}} 21 public interface {{classname}} extends ApiClient.Api { 22 23 {{#operations}}{{#operation}} 24 /** 25 * {{summary}} 26 * {{notes}} 27 {{#allParams}} 28 * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} 29 {{/allParams}} 30 {{#returnType}} 31 * @return {{returnType}} 32 {{/returnType}} 33 {{#externalDocs}} 34 * {{description}} 35 * @see <a href="{{url}}">{{summary}} Documentation</a> 36 {{/externalDocs}} 37 */ 38 @RequestLine("{{httpMethod}} {{{path}}}{{#hasQueryParams}}?{{/hasQueryParams}}{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") 39 @Headers({ 40 {{#vendorExtensions.x-contentType}} "Content-Type: {{vendorExtensions.x-contentType}}", 41 {{/vendorExtensions.x-contentType}} "Accept: {{vendorExtensions.x-accepts}}",{{#headerParams}} 42 "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, 43 {{/-last}}{{/headerParams}} 44 }) 45 {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}({{#allParams}}{{^isBodyParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{baseName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isBodyParam}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); 46 {{#hasQueryParams}} 47 48 /** 49 * {{summary}} 50 * {{notes}} 51 * Note, this is equivalent to the other <code>{{operationId}}</code> method, 52 * but with the query parameters collected into a single Map parameter. This 53 * is convenient for services with optional query parameters, especially when 54 * used with the {@link {{operationIdCamelCase}}QueryParams} class that allows for 55 * building up this map in a fluent style. 56 {{#allParams}} 57 {{^isQueryParam}} 58 * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} 59 {{/isQueryParam}} 60 {{/allParams}} 61 * @param queryParams Map of query parameters as name-value pairs 62 * <p>The following elements may be specified in the query map:</p> 63 * <ul> 64 {{#queryParams}} 65 * <li>{{paramName}} - {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}</li> 66 {{/queryParams}} 67 * </ul> 68 {{#returnType}} 69 * @return {{returnType}} 70 {{/returnType}} 71 {{#externalDocs}} 72 * {{description}} 73 * @see <a href="{{url}}">{{summary}} Documentation</a> 74 {{/externalDocs}} 75 */ 76 @RequestLine("{{httpMethod}} {{{path}}}?{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") 77 @Headers({ 78 {{#vendorExtensions.x-contentType}} "Content-Type: {{vendorExtensions.x-contentType}}", 79 {{/vendorExtensions.x-contentType}} "Accept: {{vendorExtensions.x-accepts}}",{{#headerParams}} 80 "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, 81 {{/-last}}{{/headerParams}} 82 }) 83 {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{baseName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) Map<String, Object> queryParams); 84 85 /** 86 * A convenience class for generating query parameters for the 87 * <code>{{operationId}}</code> method in a fluent style. 88 */ 89 public static class {{operationIdCamelCase}}QueryParams extends HashMap<String, Object> { 90 {{#queryParams}} 91 public {{operationIdCamelCase}}QueryParams {{paramName}}(final {{{dataType}}} value) { 92 {{#collectionFormat}} 93 put("{{baseName}}", EncodingUtils.encodeCollection(value, "{{collectionFormat}}")); 94 {{/collectionFormat}} 95 {{^collectionFormat}} 96 put("{{baseName}}", EncodingUtils.encode(value)); 97 {{/collectionFormat}} 98 return this; 99 } 100 {{/queryParams}} 101 } 102 {{/hasQueryParams}} 103 {{/operation}} 104 {{/operations}} 105 }