Abp Vnext 的 Vue3 实现版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
4.3 KiB

{% if HasOperations -%}
{% if GenerateClientInterfaces -%}
{% if ExportTypes %}export {% endif %}interface I{{ Class }} {
{% for operation in Operations -%}
{% template Client.Method.Documentation %}
{{ operation.MethodAccessModifier }}{{ operation.ActualOperationName }}({% for parameter in operation.Parameters %}{{ parameter.VariableName }}{% if GenerateOptionalParameters and parameter.IsOptional %}?{% endif %}: {{ parameter.Type }}{{ parameter.TypePostfix }}{% if parameter.IsLast == false %}, {% endif %}{% endfor %}): Promise<{{ operation.ResultType }}>;
{% endfor -%}}
{% endif -%}
{% if ExportTypes %}export {% endif %}class {{ Class }} {% if HasBaseClass %}extends {{ BaseClass }} {% endif %}{% if GenerateClientInterfaces %}implements I{{ Class }} {% endif %}{
private instance: AxiosInstance;
private baseUrl: string;
protected jsonParseReviver: {% if SupportsStrictNullChecks %}((key: string, value: any) => any) | undefined{% else %}(key: string, value: any) => any{% endif %} = undefined;
{% if HasExtendedConstructor == false -%}
constructor({% if HasConfigurationClass %}configuration: {{ ConfigurationClass }}, {% endif %}baseUrl?: string, instance?: AxiosInstance) {
{% if HasBaseClass -%}
super({% if HasConfigurationClass %}configuration{% endif %});
{% endif -%}
this.instance = instance ? instance : axios.create();
{% if UseGetBaseUrlMethod -%}
this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl("{{ BaseUrl }}");
{% else -%}
this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : "";
{% endif -%}
}
{% endif -%}
{% if HasExtensionCode -%}
{{ ExtensionCode }}
{% endif -%}
{% for operation in Operations -%}
{% template Client.Method.Documentation %}
{{ operation.MethodAccessModifier }}{{ operation.ActualOperationName }}({% for parameter in operation.Parameters %}{{ parameter.VariableName }}{% if GenerateOptionalParameters and parameter.IsOptional %}?{% endif %}: {{ parameter.Type }}{{ parameter.TypePostfix }}{% if parameter.IsLast == false %}, {% endif %}{% endfor %} {% if operation.Parameters.size > 0 %},{%endif%} cancelToken?: CancelToken | undefined): Promise<{{ operation.ResultType }}> {
{% template Client.RequestUrl %}
{% if operation.HasBody -%}
{% template Client.RequestBody %}
{% endif -%}
let options_ = <AxiosRequestConfig>{
{% if operation.HasBody -%}
data: content_,
{% endif -%}
{% if operation.IsFile -%}
responseType: "blob",
{% endif -%}
method: "{{ operation.HttpMethodUpper | upcase }}",
url: url_,
headers: {
{% for parameter in operation.HeaderParameters -%}
"{{ parameter.Name }}": {{ parameter.VariableName }} !== undefined && {{ parameter.VariableName }} !== null ? "" + {{ parameter.VariableName }} : "",
{% endfor -%}
{% if operation.HasContent or operation.ConsumesFormUrlEncoded -%}
"Content-Type": "{{ operation.Consumes }}",
{% endif -%}
{% if operation.HasResultType and operation.HasAcceptHeaderParameterParameter == false -%}
"Accept": "{{ operation.Produces }}"
{% endif -%}
},
cancelToken
};
{% if UseTransformOptionsMethod -%}
return this.transformOptions(options_).then(transformedOptions_ => {
return this.instance.request(transformedOptions_);
}).catch((_error: any) => {
{% else -%}
return this.instance.request(options_).catch((_error: any) => {
{% endif -%}
if (isAxiosError(_error) && _error.response) {
return _error.response;
} else {
throw _error;
}
}).then((_response: AxiosResponse) => {
{% if UseTransformResultMethod -%}
return this.transformResult(url_, _response, (_response: AxiosResponse) => this.process{{ operation.ActualOperationNameUpper }}(_response));
{% else -%}
return this.process{{ operation.ActualOperationNameUpper }}(_response);
{% endif -%}
});
}
protected process{{ operation.ActualOperationNameUpper }}(response: AxiosResponse): Promise<{{ operation.ResultType }}> {
const status = response.status;
{% template Client.ProcessResponse %}
}
{% endfor -%}
}
{% endif -%}