| package {{package}}; |
| |
| {{#legacyDates}} |
| import {{invokerPackage}}.ParamExpander; |
| {{/legacyDates}} |
| import {{modelPackage}}.ApiResponse; |
| |
| {{#imports}}import {{import}}; |
| {{/imports}} |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| {{#useBeanValidation}} |
| import {{javaxPackage}}.validation.constraints.*; |
| import {{javaxPackage}}.validation.Valid; |
| |
| {{/useBeanValidation}} |
| import feign.*; |
| |
| {{>generatedAnnotation}} |
| public interface {{classname}} { |
| |
| {{#operations}}{{#operation}} |
| /** |
| * {{summary}} |
| * {{notes}} |
| {{#allParams}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/allParams}} |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| {{#externalDocs}} |
| * {{description}} |
| * @see <a href="{{url}}">{{summary}} Documentation</a> |
| {{/externalDocs}} |
| {{#isDeprecated}} |
| * @deprecated |
| {{/isDeprecated}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}{{#hasQueryParams}}?{{/hasQueryParams}}{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}({{#allParams}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/allParams}}@HeaderMap Map<String, String> headers); |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Convenience method with empty headers. |
| {{#allParams}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/allParams}} |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| {{#isDeprecated}} |
| * @deprecated |
| {{/isDeprecated}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| default {{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}}({{#allParams}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) { |
| {{#returnType}}return {{/returnType}}{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}Map.of()); |
| } |
| |
| /** |
| * {{summary}} |
| * Similar to <code>{{operationId}}</code> but it also returns the http response headers . |
| * {{notes}} |
| {{#allParams}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/allParams}} |
| {{#returnType}} |
| * @return A ApiResponse that wraps the response boyd and the http headers. |
| {{/returnType}} |
| {{#externalDocs}} |
| * {{description}} |
| * @see <a href="{{url}}">{{summary}} Documentation</a> |
| {{/externalDocs}} |
| {{#isDeprecated}} |
| * @deprecated |
| {{/isDeprecated}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}{{#hasQueryParams}}?{{/hasQueryParams}}{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| ApiResponse<{{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{nickname}}WithHttpInfo({{#allParams}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/allParams}}@HeaderMap Map<String, String> headers); |
| |
| |
| {{#hasQueryParams}} |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Note, this is equivalent to the other <code>{{operationId}}</code> method, |
| * but with the query parameters collected into a single Map parameter. This |
| * is convenient for services with optional query parameters, especially when |
| * used with the {@link {{operationIdCamelCase}}QueryParams} class that allows for |
| * building up this map in a fluent style. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Map of query parameters as name-value pairs |
| * <p>The following elements may be specified in the query map:</p> |
| * <ul> |
| {{#queryParams}} |
| * <li>{{paramName}} - {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}</li> |
| {{/queryParams}} |
| * </ul> |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| {{#externalDocs}} |
| * {{description}} |
| * @see <a href="{{url}}">{{summary}} Documentation</a> |
| {{/externalDocs}} |
| {{#isDeprecated}} |
| * @deprecated |
| {{/isDeprecated}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}?{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) {{operationIdCamelCase}}QueryParams queryParams, @HeaderMap Map<String, String> headers); |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Convenience method that uses typed QueryParams and empty headers. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Query parameters as typed object |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| default {{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}}({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) {{operationIdCamelCase}}QueryParams queryParams) { |
| {{#returnType}}return {{/returnType}}{{nickname}}({{#allParams}}{{^isQueryParam}}{{paramName}}, {{/isQueryParam}}{{/allParams}}queryParams, Map.of()); |
| } |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Convenience method that accepts generic query parameters map. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Query parameters as generic map |
| * @param headers Custom headers to include in the request |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}?{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) Map<String, Object> queryParams, @HeaderMap Map<String, String> headers); |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Convenience method that accepts generic query parameters map with empty headers. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Query parameters as generic map |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| default {{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}}({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) Map<String, Object> queryParams) { |
| {{#returnType}}return {{/returnType}}{{nickname}}({{#allParams}}{{^isQueryParam}}{{paramName}}, {{/isQueryParam}}{{/allParams}}queryParams, Map.of()); |
| } |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Note, this is equivalent to the other <code>{{operationId}}</code> that receives the query parameters as a map, |
| * but this one also exposes the Http response headers |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Map of query parameters as name-value pairs |
| * <p>The following elements may be specified in the query map:</p> |
| * <ul> |
| {{#queryParams}} |
| * <li>{{paramName}} - {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}</li> |
| {{/queryParams}} |
| * </ul> |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| {{#externalDocs}} |
| * {{description}} |
| * @see <a href="{{url}}">{{summary}} Documentation</a> |
| {{/externalDocs}} |
| {{#isDeprecated}} |
| * @deprecated |
| {{/isDeprecated}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}?{{#queryParams}}{{baseName}}={{=<% %>=}}{<%paramName%>}<%={{ }}=%>{{^-last}}&{{/-last}}{{/queryParams}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| ApiResponse<{{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{nickname}}WithHttpInfo({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) {{operationIdCamelCase}}QueryParams queryParams, @HeaderMap Map<String, String> headers); |
| |
| |
| /** |
| * A convenience class for generating query parameters for the |
| * <code>{{operationId}}</code> method in a fluent style. |
| */ |
| public static class {{operationIdCamelCase}}QueryParams extends HashMap<String, Object> { |
| {{#queryParams}} |
| public {{operationIdCamelCase}}QueryParams {{paramName}}(final {{{dataType}}} value) { |
| put("{{baseName}}", value); |
| return this; |
| } |
| {{/queryParams}} |
| } |
| {{/hasQueryParams}} |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Universal method that accepts generic query parameters map with headers. |
| * Useful for passing undocumented or optional query parameters. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Query parameters as generic map (e.g., template=true, associations=all) |
| * @param headers Custom headers to include in the request |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| @RequestLine("{{httpMethod}} {{{path}}}") |
| @Headers({ |
| {{#vendorExtensions.x-content-type}} "Content-Type: {{{vendorExtensions.x-content-type}}}", |
| {{/vendorExtensions.x-content-type}} "Accept: {{#vendorExtensions.x-accepts}}{{{.}}}{{^-last}},{{/-last}}{{/vendorExtensions.x-accepts}}",{{#headerParams}} |
| "{{baseName}}: {{=<% %>=}}{<%paramName%>}<%={{ }}=%>"{{^-last}}, |
| {{/-last}}{{/headerParams}} |
| }) |
| {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}Universal({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) Map<String, Object> queryParams, @HeaderMap Map<String, String> headers); |
| |
| /** |
| * {{summary}} |
| * {{notes}} |
| * Universal method that accepts generic query parameters map with empty headers. |
| {{#allParams}} |
| {{^isQueryParam}} |
| * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} |
| {{/isQueryParam}} |
| {{/allParams}} |
| * @param queryParams Query parameters as generic map |
| {{#returnType}} |
| * @return {{.}} |
| {{/returnType}} |
| */ |
| {{#isDeprecated}} |
| @Deprecated |
| {{/isDeprecated}} |
| default {{#returnType}}{{{.}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}}Universal({{#allParams}}{{^isQueryParam}}{{^isBodyParam}}{{^isFormParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isFormParam}}{{#isFormParam}}@Param("{{baseName}}") {{/isFormParam}}{{/isBodyParam}}{{{dataType}}} {{paramName}}, {{/isQueryParam}}{{/allParams}}@QueryMap(encoded=true) Map<String, Object> queryParams) { |
| {{#returnType}}return {{/returnType}}{{nickname}}Universal({{#allParams}}{{^isQueryParam}}{{paramName}}, {{/isQueryParam}}{{/allParams}}queryParams, Map.of()); |
| } |
| |
| {{/operation}} |
| {{/operations}} |
| } |