forked from loafle/openapi-generator-original
137 lines
6.3 KiB
Plaintext
137 lines
6.3 KiB
Plaintext
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using RestSharp;
|
|
using {{invokerPackage}};
|
|
using {{modelPackage}};
|
|
{{#imports}}
|
|
{{/imports}}
|
|
|
|
namespace {{package}} {
|
|
{{#operations}}
|
|
|
|
public interface I{{classname}} {
|
|
{{#operation}}
|
|
{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
|
|
|
|
{{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
|
|
{{/operation}}
|
|
}
|
|
|
|
public class {{classname}} : I{{classname}} {
|
|
string basePath;
|
|
protected RestClient restClient;
|
|
|
|
public {{classname}}(String basePath = "{{basePath}}")
|
|
{
|
|
this.basePath = basePath;
|
|
this.restClient = new RestClient(basePath);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sets the endpoint base url for the services being accessed
|
|
/// </summary>
|
|
/// <param name="basePath"> Base URL
|
|
/// <returns></returns>
|
|
public void SetBasePath(string basePath) {
|
|
this.basePath = basePath;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the endpoint base url for the services being accessed
|
|
/// <returns>Base URL</returns>
|
|
/// </summary>
|
|
public String GetBasePath() {
|
|
return this.basePath;
|
|
}
|
|
|
|
{{#operation}}
|
|
|
|
/// <summary>
|
|
/// {{summary}} {{notes}}
|
|
/// </summary>
|
|
{{#allParams}} /// <param name="{{paramName}}">{{description}}</param>
|
|
{{/allParams}}
|
|
/// <returns>{{#returnType}}{{{returnType}}}{{/returnType}}</returns>
|
|
public {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
|
|
|
|
var _request = new RestRequest("{{path}}", Method.{{httpMethod}});
|
|
|
|
{{#allParams}}{{#required}}
|
|
// verify the required parameter '{{paramName}}' is set
|
|
if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}");
|
|
{{/required}}{{/allParams}}
|
|
|
|
// add default header, if any
|
|
foreach(KeyValuePair<string, string> defaultHeader in ApiInvoker.GetDefaultHeader())
|
|
{
|
|
_request.AddHeader(defaultHeader.Key, defaultHeader.Value);
|
|
}
|
|
|
|
_request.AddUrlSegment("format", "json"); // set format to json by default
|
|
{{#pathParams}}_request.AddUrlSegment("{{baseName}}", ApiInvoker.ParameterToString({{{paramName}}})); // path (url segment) parameter
|
|
{{/pathParams}}
|
|
{{#queryParams}} if ({{paramName}} != null) _request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // query parameter
|
|
{{/queryParams}}
|
|
{{#headerParams}} if ({{paramName}} != null) _request.AddHeader("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // header parameter
|
|
{{/headerParams}}
|
|
{{#formParams}}if ({{paramName}} != null) {{#isFile}}_request.AddFile("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}_request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // form parameter{{/isFile}}
|
|
{{/formParams}}
|
|
{{#bodyParam}}_request.AddParameter("application/json", ApiInvoker.Serialize({{paramName}}), ParameterType.RequestBody); // http body (model) parameter
|
|
{{/bodyParam}}
|
|
|
|
// make the HTTP request
|
|
IRestResponse response = restClient.Execute(_request);
|
|
if (((int)response.StatusCode) >= 400) {
|
|
throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content);
|
|
}
|
|
{{#returnType}}return ({{{returnType}}}) ApiInvoker.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
|
|
return;{{/returnType}}
|
|
}
|
|
|
|
/// <summary>
|
|
/// {{summary}} {{notes}}
|
|
/// </summary>
|
|
{{#allParams}} /// <param name="{{paramName}}">{{description}}</param>
|
|
{{/allParams}}
|
|
/// <returns>{{#returnType}}{{{returnType}}}{{/returnType}}</returns>
|
|
public async {{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
|
|
|
|
var _request = new RestRequest("{{path}}", Method.{{httpMethod}});
|
|
|
|
{{#allParams}}{{#required}}
|
|
// verify the required parameter '{{paramName}}' is set
|
|
if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}");
|
|
{{/required}}{{/allParams}}
|
|
|
|
// add default header, if any
|
|
foreach(KeyValuePair<string, string> defaultHeader in ApiInvoker.GetDefaultHeader())
|
|
{
|
|
_request.AddHeader(defaultHeader.Key, defaultHeader.Value);
|
|
}
|
|
|
|
_request.AddUrlSegment("format", "json"); // set format to json by default
|
|
{{#pathParams}}_request.AddUrlSegment("{{baseName}}", ApiInvoker.ParameterToString({{{paramName}}})); // path (url segment) parameter
|
|
{{/pathParams}}
|
|
{{#queryParams}} if ({{paramName}} != null) _request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // query parameter
|
|
{{/queryParams}}
|
|
{{#headerParams}} if ({{paramName}} != null) _request.AddHeader("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // header parameter
|
|
{{/headerParams}}
|
|
{{#formParams}}if ({{paramName}} != null) {{#isFile}}_request.AddFile("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}_request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // form parameter{{/isFile}}
|
|
{{/formParams}}
|
|
{{#bodyParam}}_request.AddParameter("application/json", ApiInvoker.Serialize({{paramName}}), ParameterType.RequestBody); // http body (model) parameter
|
|
{{/bodyParam}}
|
|
|
|
// make the HTTP request
|
|
IRestResponse response = await restClient.ExecuteTaskAsync(_request);
|
|
if (((int)response.StatusCode) >= 400) {
|
|
throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content);
|
|
}
|
|
{{#returnType}}return ({{{returnType}}}) ApiInvoker.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
|
|
return;{{/returnType}}
|
|
}
|
|
{{/operation}}
|
|
}
|
|
{{/operations}}
|
|
}
|