Skip to content

Commit 049299f

Browse files
author
Fredrik Gustafsson
committed
Updated 'api.mustache' to generate asynchronous methods aswell
1 parent 1657f2e commit 049299f

File tree

1 file changed

+44
-1
lines changed
  • modules/swagger-codegen/src/main/resources/csharp

1 file changed

+44
-1
lines changed

modules/swagger-codegen/src/main/resources/csharp/api.mustache

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Threading.Tasks;
34
using RestSharp;
45
using {{invokerPackage}};
56
using {{modelPackage}};
@@ -78,7 +79,49 @@ namespace {{package}} {
7879
{{#returnType}}return ({{{returnType}}}) ApiInvoker.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
7980
return;{{/returnType}}
8081
}
82+
83+
/// <summary>
84+
/// {{summary}} {{notes}}
85+
/// </summary>
86+
{{#allParams}} /// <param name="{{paramName}}">{{description}}</param>
87+
{{/allParams}}
88+
/// <returns>{{#returnType}}{{{returnType}}}{{/returnType}}</returns>
89+
public async {{#returnType}}Task<{{{returnType}}}>{{/returnType}}{{^returnType}}Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
90+
91+
var _request = new RestRequest("{{path}}", Method.{{httpMethod}});
92+
93+
{{#allParams}}{{#required}}
94+
// verify the required parameter '{{paramName}}' is set
95+
if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}");
96+
{{/required}}{{/allParams}}
97+
98+
// add default header, if any
99+
foreach(KeyValuePair<string, string> defaultHeader in ApiInvoker.GetDefaultHeader())
100+
{
101+
_request.AddHeader(defaultHeader.Key, defaultHeader.Value);
102+
}
103+
104+
_request.AddUrlSegment("format", "json"); // set format to json by default
105+
{{#pathParams}}_request.AddUrlSegment("{{baseName}}", ApiInvoker.ParameterToString({{{paramName}}})); // path (url segment) parameter
106+
{{/pathParams}}
107+
{{#queryParams}} if ({{paramName}} != null) _request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // query parameter
108+
{{/queryParams}}
109+
{{#headerParams}} if ({{paramName}} != null) _request.AddHeader("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // header parameter
110+
{{/headerParams}}
111+
{{#formParams}}if ({{paramName}} != null) {{#isFile}}_request.AddFile("{{baseName}}", {{paramName}});{{/isFile}}{{^isFile}}_request.AddParameter("{{baseName}}", ApiInvoker.ParameterToString({{paramName}})); // form parameter{{/isFile}}
112+
{{/formParams}}
113+
{{#bodyParam}}_request.AddParameter("application/json", ApiInvoker.Serialize({{paramName}}), ParameterType.RequestBody); // http body (model) parameter
114+
{{/bodyParam}}
115+
116+
// make the HTTP request
117+
IRestResponse response = await restClient.ExecuteTaskAsync(_request);
118+
if (((int)response.StatusCode) >= 400) {
119+
throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content);
120+
}
121+
{{#returnType}}return ({{{returnType}}}) ApiInvoker.Deserialize(response.Content, typeof({{{returnType}}}));{{/returnType}}{{^returnType}}
122+
return;{{/returnType}}
123+
}
81124
{{/operation}}
82-
}
125+
}
83126
{{/operations}}
84127
}

0 commit comments

Comments
 (0)