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  }